diff options
Diffstat (limited to 'uml/sequence')
-rw-r--r-- | uml/sequence/img/sequence_01.png | bin | 46724 -> 0 bytes | |||
-rw-r--r-- | uml/sequence/img/sequence_02.png | bin | 37566 -> 0 bytes | |||
-rw-r--r-- | uml/sequence/img/sequence_03.png | bin | 47313 -> 0 bytes | |||
-rw-r--r-- | uml/sequence/img/sequence_04.png | bin | 53658 -> 0 bytes | |||
-rw-r--r-- | uml/sequence/img/sequence_05.png | bin | 42846 -> 0 bytes | |||
-rw-r--r-- | uml/sequence/img/sequence_06.png | bin | 51159 -> 0 bytes | |||
-rw-r--r-- | uml/sequence/img/sequence_07.png | bin | 48594 -> 0 bytes | |||
-rw-r--r-- | uml/sequence/img/sequence_08.png | bin | 35320 -> 0 bytes | |||
-rw-r--r-- | uml/sequence/img/sequence_09.png | bin | 53687 -> 0 bytes | |||
-rw-r--r-- | uml/sequence/img/sequence_10.png | bin | 45648 -> 0 bytes | |||
-rw-r--r-- | uml/sequence/img/sequence_11.png | bin | 29875 -> 0 bytes | |||
-rw-r--r-- | uml/sequence/img/sequence_complete.png | bin | 715493 -> 0 bytes | |||
-rw-r--r-- | uml/sequence/sequence.plant | 2032 |
13 files changed, 0 insertions, 2032 deletions
diff --git a/uml/sequence/img/sequence_01.png b/uml/sequence/img/sequence_01.png Binary files differdeleted file mode 100644 index 3fe7c21..0000000 --- a/uml/sequence/img/sequence_01.png +++ /dev/null diff --git a/uml/sequence/img/sequence_02.png b/uml/sequence/img/sequence_02.png Binary files differdeleted file mode 100644 index 54f2915..0000000 --- a/uml/sequence/img/sequence_02.png +++ /dev/null diff --git a/uml/sequence/img/sequence_03.png b/uml/sequence/img/sequence_03.png Binary files differdeleted file mode 100644 index 8b4fa79..0000000 --- a/uml/sequence/img/sequence_03.png +++ /dev/null diff --git a/uml/sequence/img/sequence_04.png b/uml/sequence/img/sequence_04.png Binary files differdeleted file mode 100644 index ce00329..0000000 --- a/uml/sequence/img/sequence_04.png +++ /dev/null diff --git a/uml/sequence/img/sequence_05.png b/uml/sequence/img/sequence_05.png Binary files differdeleted file mode 100644 index 145c8ca..0000000 --- a/uml/sequence/img/sequence_05.png +++ /dev/null diff --git a/uml/sequence/img/sequence_06.png b/uml/sequence/img/sequence_06.png Binary files differdeleted file mode 100644 index af61d71..0000000 --- a/uml/sequence/img/sequence_06.png +++ /dev/null diff --git a/uml/sequence/img/sequence_07.png b/uml/sequence/img/sequence_07.png Binary files differdeleted file mode 100644 index ed44b5d..0000000 --- a/uml/sequence/img/sequence_07.png +++ /dev/null diff --git a/uml/sequence/img/sequence_08.png b/uml/sequence/img/sequence_08.png Binary files differdeleted file mode 100644 index 854c3e1..0000000 --- a/uml/sequence/img/sequence_08.png +++ /dev/null diff --git a/uml/sequence/img/sequence_09.png b/uml/sequence/img/sequence_09.png Binary files differdeleted file mode 100644 index 2eee6ca..0000000 --- a/uml/sequence/img/sequence_09.png +++ /dev/null diff --git a/uml/sequence/img/sequence_10.png b/uml/sequence/img/sequence_10.png Binary files differdeleted file mode 100644 index 58df194..0000000 --- a/uml/sequence/img/sequence_10.png +++ /dev/null diff --git a/uml/sequence/img/sequence_11.png b/uml/sequence/img/sequence_11.png Binary files differdeleted file mode 100644 index c07243a..0000000 --- a/uml/sequence/img/sequence_11.png +++ /dev/null diff --git a/uml/sequence/img/sequence_complete.png b/uml/sequence/img/sequence_complete.png Binary files differdeleted file mode 100644 index ec75314..0000000 --- a/uml/sequence/img/sequence_complete.png +++ /dev/null diff --git a/uml/sequence/sequence.plant b/uml/sequence/sequence.plant deleted file mode 100644 index 799538e..0000000 --- a/uml/sequence/sequence.plant +++ /dev/null @@ -1,2032 +0,0 @@ -@startuml img/sequence_complete.png -hide footbox - -participant view as "view\n: View" -participant handPanel as "handPanel\n: HandPanel" -participant playerPanel as "playerPanel\n: PlayerPanel" -participant tablePanel as "tablePanel\n: TablePanel" -participant roundControl as "roundControl\n: RoundControl" -participant ITurnControlFactory -participant humanTurnControlFactory as "humanTurnControlFactory\n: ITurnControlFactory" -participant turnControl as "turnControl\n: HumanTurnControl" -participant humanTurnControlFactory2 as "humanTurnControlFactory\n: ITurnControlFactory" -participant turnControl2 as "turnControl\n: HumanTurnControl" -participant humanTurnControlFactory3 as "humanTurnControlFactory\n: ITurnControlFactory" -participant turnControl3 as "turnControl\n: HumanTurnControl" -participant humanTurnControlFactory4 as "humanTurnControlFactory\n: ITurnControlFactory" -participant turnControl4 as "turnControl\n: HumanTurnControl" -participant roundState as "roundState\n: RoundState" -participant table as "table\n: Table" -participant clonedTable as "clonedTable\n: Table" -participant clonedTable2 as "clonedTable2\n: Table" -participant clonedTable3 as "clonedTable3\n: Table" -participant clonedTable4 as "clonedTable4\n: Table" -participant playerA as "playerA\n: Player" -participant playerASettings as "playerASettings\n: PlayerSettings" -participant playerAHand as "playerAHand\n: Hand" -participant playerB as "playerB\n: Player" -participant playerBSettings as "playerBSettings\n: PlayerSettings" -participant playerBHand as "playerBHand\n: Hand" -participant gameHeap as "gameHeap\n: StoneHeap" - -== Initialize player B's turn == - -[-> view -activate view -view -> roundControl : startTurn() : void -activate roundControl - -roundControl -> roundState : getActivePlayer() : Player -activate roundState -roundControl <<-- roundState : playerB -deactivate roundState - -roundControl -> playerB : getPlayerSettings() : PlayerSettings -activate playerB -roundControl <<-- playerB : playerBSettings -deactivate playerB - -roundControl -> playerBSettings : getTurnControlType() : ITurnControlFactory.Type -activate playerBSettings -roundControl <<-- playerBSettings : HUMAN -deactivate playerBSettings - - -roundControl -> ITurnControlFactory : getFactory(HUMAN) : ITurnControlFactory -activate ITurnControlFactory - -create humanTurnControlFactory -ITurnControlFactory -> humanTurnControlFactory : <<create>> -activate humanTurnControlFactory -humanTurnControlFactory -->> ITurnControlFactory -deactivate humanTurnControlFactory - -ITurnControlFactory -->> roundControl : humanTurnControlFactory : ITurnControlFactory -deactivate ITurnControlFactory - -roundControl -> humanTurnControlFactory : create() : ITurnControl -activate humanTurnControlFactory -create turnControl -humanTurnControlFactory -> turnControl : <<create>> -activate turnControl -turnControl -->> humanTurnControlFactory -deactivate turnControl - -humanTurnControlFactory -->> roundControl : turnControl -deactivate humanTurnControlFactory - -' roundControl -> table : clone() -' activate table -' create clonedTable -' table -> clonedTable : <<create>> -' activate clonedTable -' table <<-- clonedTable -' deactivate clonedTable -' roundControl <<-- table : clonedTable -' deactivate table - -roundControl -> turnControl : setup(player, clonedTable, view, false, false) : void -activate turnControl -turnControl -->> roundControl -deactivate turnControl - -roundControl -> turnControl : startTurn() : void -activate turnControl - -turnControl -> handPanel : setStones(hand.clone()) : void -activate handPanel -handPanel -->> turnControl -deactivate handPanel - -turnControl -> view : setBottomPanel(HUMAN_HAND_PANEL) : void -activate view -view -->> turnControl -deactivate view - - -turnControl -->> roundControl -deactivate turnControl - -view <<-- roundControl -deactivate roundControl - -[<<-- view -deactivate view - -== Player B appends stone to set == - -[-> handPanel -activate handPanel - -handPanel -> turnControl : stoneClick(stone1, false) : void -activate turnControl - -turnControl -> view : setSelectedStones({stone1}) : void -activate view -turnControl <<- view -deactivate view - -handPanel <<-- turnControl -deactivate turnControl - -[<<-- handPanel -deactivate handPanel - -[-> tablePanel -activate tablePanel - -tablePanel -> turnControl : connectorClick(stoneSet1, true) : void -activate turnControl - -' TODO self calls? - -turnControl -> turnControl : pickUpSelectedStones() : void -activate turnControl - -turnControl -> playerBHand : pickUp(stone1) : boolean -activate playerBHand -turnControl <<-- playerBHand : true -deactivate playerBHand - -turnControl <<-- turnControl -deactivate turnControl - - -turnControl -> clonedTable : getPosition(stoneSet1) : Position -activate clonedTable -turnControl <<-- clonedTable : position -deactivate clonedTable - -turnControl -> clonedTable : pickUp(stoneSet1) : boolean -activate clonedTable -turnControl <<-- clonedTable : true -deactivate clonedTable - -turnControl -> clonedTable : drop(joinedStoneSet, newPosition) : void -activate clonedTable -turnControl <<-- clonedTable -deactivate clonedTable - -turnControl -> tablePanel : setStoneSets(clonedTable) : void -activate tablePanel -turnControl <<- tablePanel -deactivate tablePanel - -turnControl -> handPanel : setStones(playerBHand) : void -activate handPanel -turnControl <<- handPanel -deactivate handPanel - -turnControl -> view : setSelectedStones({}) : void -activate view -turnControl <<- view -deactivate view - - -tablePanel <<-- turnControl -deactivate turnControl - -[<<-- tablePanel -deactivate tablePanel - -== End of player B's turn == - -[-> playerPanel -activate playerPanel - -playerPanel -> turnControl : endOfTurn() : void -activate turnControl - -turnControl -> roundControl : endOfTurn() : void -activate roundControl - -roundControl -> roundControl : checkTurn() : void -activate roundControl - -roundControl -> clonedTable : isValid() : boolean -activate clonedTable - -roundControl <<-- clonedTable : false -deactivate clonedTable -destroy clonedTable - -roundControl -> roundControl : rejectMove() : void -activate roundControl - -roundControl -> gameHeap : putBack({stone1}) : void -activate gameHeap - -roundControl <<-- gameHeap -deactivate gameHeap - -loop 4 times -roundControl -> gameHeap : drawStone() : Stone -activate gameHeap - -roundControl <<-- gameHeap : stone -deactivate gameHeap - -roundControl -> playerBHand : drop(stone) : void -activate playerBHand - -roundControl <<-- playerBHand -deactivate playerBHand - -end - -' reject move -roundControl <<-- roundControl -deactivate roundControl - - -' check turn -roundControl <<-- roundControl -deactivate roundControl - -roundControl -> roundControl : prepareTurn() : void -activate roundControl - - -roundControl -> table : clone() -activate table -create clonedTable2 -table -> clonedTable2 : <<create>> -activate clonedTable2 -table <<-- clonedTable2 -deactivate clonedTable2 -roundControl <<-- table : clonedTable2 -deactivate table - -roundControl -> view : setBottomPanel(START_TURN_PANEL) : void -activate view -roundControl <<-- view -deactivate view - -roundControl -> tablePanel : setStoneSets(clonedTable2) : void -activate tablePanel -roundControl <<- tablePanel -deactivate tablePanel - - -roundControl <<-- roundControl -deactivate roundControl - - -turnControl <<-- roundControl -deactivate roundControl - -playerPanel <<-- turnControl -deactivate turnControl -destroy turnControl - -[<<-- playerPanel -deactivate playerPanel - -== Initialize player A's turn == - -[-> view -activate view -view -> roundControl : startTurn() : void -activate roundControl - -roundControl -> roundState : getActivePlayer() : Player -activate roundState -roundControl <<-- roundState : playerA -deactivate roundState - -roundControl -> playerA : getPlayerSettings() : PlayerSettings -activate playerA -roundControl <<-- playerA : playerASettings -deactivate playerA - -roundControl -> playerASettings : getTurnControlType() : ITurnControlFactory.Type -activate playerASettings -roundControl <<-- playerASettings : HUMAN -deactivate playerASettings - - -roundControl -> ITurnControlFactory : getFactory(HUMAN) : ITurnControlFactory -activate ITurnControlFactory - -create humanTurnControlFactory -ITurnControlFactory -> humanTurnControlFactory2 : <<create>> -activate humanTurnControlFactory2 -humanTurnControlFactory2 -->> ITurnControlFactory -deactivate humanTurnControlFactory2 - -ITurnControlFactory -->> roundControl : humanTurnControlFactory2 : ITurnControlFactory -deactivate ITurnControlFactory - -roundControl -> humanTurnControlFactory2 : create() : ITurnControl -activate humanTurnControlFactory2 -create turnControl2 -humanTurnControlFactory -> turnControl2 : <<create>> -activate turnControl2 -turnControl2 -->> humanTurnControlFactory -deactivate turnControl2 - -humanTurnControlFactory2 -->> roundControl : turnControl2 -deactivate humanTurnControlFactory2 - -roundControl -> turnControl2 : setup(player, clonedTable2, view, false, false) : void -activate turnControl2 -turnControl2 -->> roundControl -deactivate turnControl2 - -roundControl -> turnControl2 : startTurn() : void -activate turnControl2 - -turnControl2 -> handPanel : setStones(hand.clone()) : void -activate handPanel -handPanel -->> turnControl2 -deactivate handPanel - -turnControl2 -> view : setBottomPanel(HUMAN_HAND_PANEL) : void -activate view -view -->> turnControl2 -deactivate view - - -turnControl2 -->> roundControl -deactivate turnControl2 - -view <<-- roundControl -deactivate roundControl - -[<<-- view -deactivate view - - - - - -== End of player A's turn == - -[-> playerPanel -activate playerPanel - -playerPanel -> turnControl : endOfTurn() : void -activate turnControl - -turnControl -> roundControl : endOfTurn() : void -activate roundControl - -roundControl -> roundControl : checkTurn() : void -activate roundControl - -roundControl -> clonedTable2 : isValid() : boolean -activate clonedTable2 - -roundControl <<-- clonedTable2 : true -deactivate clonedTable2 -destroy clonedTable2 - -roundControl -> roundControl : dealStone() : void -activate roundControl - - -roundControl -> gameHeap : drawStone() : Stone -activate gameHeap - -roundControl <<-- gameHeap : stone -deactivate gameHeap - -roundControl -> playerAHand : drop(stone) : void -activate playerAHand - -roundControl <<-- playerAHand -deactivate playerAHand - - -' deal stone -roundControl <<-- roundControl -deactivate roundControl - -' check turn -roundControl <<-- roundControl -deactivate roundControl - -roundControl -> roundControl : prepareTurn() : void -activate roundControl - - -roundControl -> table : clone() -activate table -create clonedTable3 -table -> clonedTable3 : <<create>> -activate clonedTable3 -table <<-- clonedTable3 -deactivate clonedTable3 -roundControl <<-- table : clonedTable3 -deactivate table - -roundControl -> view : setBottomPanel(START_TURN_PANEL) : void -activate view -roundControl <<-- view -deactivate view - -roundControl -> tablePanel : setStoneSets(clonedTable3) : void -activate tablePanel -roundControl <<- tablePanel -deactivate tablePanel - - -roundControl <<-- roundControl -deactivate roundControl - - -turnControl <<-- roundControl -deactivate roundControl - -playerPanel <<-- turnControl -deactivate turnControl -destroy turnControl - -[<<-- playerPanel -deactivate playerPanel - - -== Initialize player B's 2nd turn == - -[-> view -activate view -view -> roundControl : startTurn() : void -activate roundControl - -roundControl -> roundState : getActivePlayer() : Player -activate roundState -roundControl <<-- roundState : playerB -deactivate roundState - -roundControl -> playerB : getPlayerSettings() : PlayerSettings -activate playerB -roundControl <<-- playerB : playerBSettings -deactivate playerB - -roundControl -> playerBSettings : getTurnControlType() : ITurnControlFactory.Type -activate playerBSettings -roundControl <<-- playerBSettings : HUMAN -deactivate playerBSettings - - -roundControl -> ITurnControlFactory : getFactory(HUMAN) : ITurnControlFactory -activate ITurnControlFactory - -create humanTurnControlFactory3 -ITurnControlFactory -> humanTurnControlFactory3 : <<create>> -activate humanTurnControlFactory3 -humanTurnControlFactory3 -->> ITurnControlFactory -deactivate humanTurnControlFactory3 - -ITurnControlFactory -->> roundControl : humanTurnControlFactory3 : ITurnControlFactory -deactivate ITurnControlFactory - -roundControl -> humanTurnControlFactory3 : create() : ITurnControl -activate humanTurnControlFactory3 -create turnControl3 -humanTurnControlFactory3 -> turnControl3 : <<create>> -activate turnControl3 -turnControl3 -->> humanTurnControlFactory3 -deactivate turnControl3 - -humanTurnControlFactory3 -->> roundControl : turnControl3 -deactivate humanTurnControlFactory3 - -roundControl -> turnControl3 : setup(player, clonedTable3, view, false, false) : void -activate turnControl3 -turnControl3 -->> roundControl -deactivate turnControl3 - -roundControl -> turnControl3 : startTurn() : void -activate turnControl3 - -turnControl3 -> handPanel : setStones(hand.clone()) : void -activate handPanel -handPanel -->> turnControl3 -deactivate handPanel - -turnControl3 -> view : setBottomPanel(HUMAN_HAND_PANEL) : void -activate view -view -->> turnControl3 -deactivate view - - -turnControl3 -->> roundControl -deactivate turnControl3 - -view <<-- roundControl -deactivate roundControl - -[<<-- view -deactivate view - -== Player B's three stone set == - - -' first stone -[-> handPanel -activate handPanel - -handPanel -> turnControl3 : stoneClick(stone2, false) : void -activate turnControl3 - -turnControl3 -> view : setSelectedStones({stone2}) : void -activate view -turnControl3 <<- view -deactivate view - -handPanel <<-- turnControl3 -deactivate turnControl3 - -[<<-- handPanel -deactivate handPanel - -' second stone -[-> handPanel -activate handPanel - -handPanel -> turnControl3 : stoneClick(stone3, true) : void -activate turnControl3 - -turnControl3 -> view : setSelectedStones({stone2, stone3}) : void -activate view -turnControl3 <<- view -deactivate view - -handPanel <<-- turnControl3 -deactivate turnControl3 - -[<<-- handPanel -deactivate handPanel - -' third stone -[-> handPanel -activate handPanel - -handPanel -> turnControl3 : stoneClick(stone4, true) : void -activate turnControl3 - -turnControl3 -> view : setSelectedStones({stone2, stone3, stone4}) : void -activate view -turnControl3 <<- view -deactivate view - -handPanel <<-- turnControl3 -deactivate turnControl3 - -[<<-- handPanel -deactivate handPanel - -' put down - -[-> tablePanel -activate tablePanel - -tablePanel -> turnControl3 : tableClick(newPosition2) -activate turnControl3 -'pickups - -turnControl3 -> turnControl3 : pickUpSelectedStones() : void -activate turnControl3 - -turnControl3 -> playerBHand : pickUp(stone2) : boolean -activate playerBHand -turnControl3 <<-- playerBHand : true -deactivate playerBHand - -turnControl3 -> playerBHand : pickUp(stone3) : boolean -activate playerBHand -turnControl3 <<-- playerBHand : true -deactivate playerBHand - -turnControl3 -> playerBHand : pickUp(stone4) : boolean -activate playerBHand -turnControl3 <<-- playerBHand : true -deactivate playerBHand - - -turnControl3 <<-- turnControl3 -deactivate turnControl3 - -turnControl3 -> clonedTable3 : drop(stoneSet2, newPosition2) : void -activate clonedTable3 -turnControl3 <<-- clonedTable3 -deactivate clonedTable3 - - -turnControl3 -> tablePanel : setStoneSets(clonedTable3) : void -activate tablePanel -turnControl3 <<- tablePanel -deactivate tablePanel - -turnControl3 -> handPanel : setStones(playerBHand) : void -activate handPanel -turnControl3 <<- handPanel -deactivate handPanel - -turnControl3 -> view : setSelectedStones({}) : void -activate view -turnControl3 <<- view -deactivate view - -tablePanel <<-- turnControl3 -deactivate turnControl3 - -[<<-- tablePanel -deactivate tablePanel - -== Player B ends the 2nd turn == - -[-> playerPanel -activate playerPanel - -playerPanel -> turnControl3 : endOfTurn() : void -activate turnControl3 - -turnControl3 -> roundControl : endOfTurn() : void -activate roundControl - -roundControl -> roundControl : checkTurn() : void -activate roundControl - -roundControl -> clonedTable3 : isValid() : boolean -activate clonedTable3 - -roundControl <<-- clonedTable3 : true -deactivate clonedTable3 - -' check turn -roundControl <<-- roundControl -deactivate roundControl - -roundControl -> playerBHand : getSize() : int -activate playerBHand - -roundControl <<-- playerBHand : 10 -deactivate playerBHand - -roundControl -> roundControl : prepareTurn() : void -activate roundControl - -roundControl -> clonedTable3 : clone() -activate clonedTable3 -create clonedTable4 -table -> clonedTable4 : <<create>> -activate clonedTable4 -table <<-- clonedTable4 -deactivate clonedTable4 -roundControl <<-- clonedTable3 : clonedTable4 -deactivate clonedTable3 - -roundControl -> view : setBottomPanel(START_TURN_PANEL) : void -activate view -roundControl <<-- view -deactivate view - -roundControl -> tablePanel : setStoneSets(clonedTable4) : void -activate tablePanel -roundControl <<- tablePanel -deactivate tablePanel - -roundControl <<-- roundControl -deactivate roundControl - -turnControl3 <<-- roundControl -deactivate roundControl - -playerPanel <<-- turnControl3 -deactivate turnControl3 -destroy turnControl3 - -[<<-- playerPanel -deactivate playerPanel - -== Initialize player A's 2nd turn == - -[-> view -activate view -view -> roundControl : startTurn() : void -activate roundControl - -roundControl -> roundState : getActivePlayer() : Player -activate roundState -roundControl <<-- roundState : playerA -deactivate roundState - -roundControl -> playerA : getPlayerSettings() : PlayerSettings -activate playerA -roundControl <<-- playerA : playerASettings -deactivate playerA - -roundControl -> playerASettings : getTurnControlType() : ITurnControlFactory.Type -activate playerASettings -roundControl <<-- playerASettings : HUMAN -deactivate playerASettings - - -roundControl -> ITurnControlFactory : getFactory(HUMAN) : ITurnControlFactory -activate ITurnControlFactory - -create humanTurnControlFactory -ITurnControlFactory -> humanTurnControlFactory4 : <<create>> -activate humanTurnControlFactory4 -humanTurnControlFactory4 -->> ITurnControlFactory -deactivate humanTurnControlFactory4 - -ITurnControlFactory -->> roundControl : humanTurnControlFactory4 : ITurnControlFactory -deactivate ITurnControlFactory - -roundControl -> humanTurnControlFactory4 : create() : ITurnControl -activate humanTurnControlFactory4 -create turnControl4 -humanTurnControlFactory -> turnControl4 : <<create>> -activate turnControl4 -turnControl4 -->> humanTurnControlFactory -deactivate turnControl4 - -humanTurnControlFactory4 -->> roundControl : turnControl4 -deactivate humanTurnControlFactory4 - -roundControl -> turnControl4 : setup(player, clonedTable4, view, false, false) : void -activate turnControl4 -turnControl4 -->> roundControl -deactivate turnControl4 - -roundControl -> turnControl4 : startTurn() : void -activate turnControl4 - -turnControl4 -> handPanel : setStones(hand.clone()) : void -activate handPanel -handPanel -->> turnControl4 -deactivate handPanel - -turnControl4 -> view : setBottomPanel(HUMAN_HAND_PANEL) : void -activate view -view -->> turnControl4 -deactivate view - - -turnControl4 -->> roundControl -deactivate turnControl4 - -view <<-- roundControl -deactivate roundControl - -[<<-- view -deactivate view - -== Player A appends two stones to set == - -[-> handPanel -activate handPanel - -handPanel -> turnControl4 : stoneClick(stone5, false) : void -activate turnControl4 - -turnControl4 -> view : setSelectedStones({stone5}) : void -activate view -turnControl4 <<- view -deactivate view - -handPanel <<-- turnControl4 -deactivate turnControl4 - -[<<-- handPanel -deactivate handPanel - -[-> handPanel -activate handPanel - -handPanel -> turnControl4 : stoneClick(stone6, true) : void -activate turnControl4 - -turnControl4 -> view : setSelectedStones({stone5, stone6}) : void -activate view -turnControl4 <<- view -deactivate view - -handPanel <<-- turnControl4 -deactivate turnControl4 - -[<<-- handPanel -deactivate handPanel - - -[-> tablePanel -activate tablePanel - -tablePanel -> turnControl4 : connectorClick(stoneSet3, true) : void -activate turnControl4 - -' TODO self calls? - -turnControl4 -> turnControl4 : pickUpSelectedStones() : void -activate turnControl4 - -turnControl4 -> playerAHand : pickUp(stone5) : boolean -activate playerAHand -turnControl4 <<-- playerAHand : true -deactivate playerAHand - -turnControl4 -> playerAHand : pickUp(stone6) : boolean -activate playerAHand -turnControl4 <<-- playerAHand : true -deactivate playerAHand - - -turnControl4 <<-- turnControl4 -deactivate turnControl4 - - -turnControl4 -> clonedTable4 : getPosition(stoneSet3) : Position -activate clonedTable4 -turnControl4 <<-- clonedTable4 : position2 -deactivate clonedTable4 - -turnControl4 -> clonedTable4 : pickUp(stoneSet3) : boolean -activate clonedTable4 -turnControl4 <<-- clonedTable4 : true -deactivate clonedTable4 - -turnControl4 -> clonedTable4 : drop(joinedStoneSet2, newPosition2) : void -activate clonedTable4 -turnControl4 <<-- clonedTable4 -deactivate clonedTable4 - -turnControl4 -> tablePanel : setStoneSets(clonedTable4) : void -activate tablePanel -turnControl4 <<- tablePanel -deactivate tablePanel - -turnControl4 -> handPanel : setStones(playerAHand) : void -activate handPanel -turnControl4 <<- handPanel -deactivate handPanel - -turnControl4 -> view : setSelectedStones({}) : void -activate view -turnControl4 <<- view -deactivate view - - -tablePanel <<-- turnControl4 -deactivate turnControl4 - -[<<-- tablePanel -deactivate tablePanel - - -== Player A ends the 2nd turn == - -[-> playerPanel -activate playerPanel - -playerPanel -> turnControl4 : endOfTurn() : void -activate turnControl4 - -turnControl4 -> roundControl : endOfTurn() : void -activate roundControl - -roundControl -> roundControl : checkTurn() : void -activate roundControl - -roundControl -> clonedTable4 : isValid() : boolean -activate clonedTable4 - -roundControl <<-- clonedTable4 : true -deactivate clonedTable4 - -' check turn -roundControl <<-- roundControl -deactivate roundControl - -roundControl -> playerAHand : getSize() : int -activate playerAHand - -roundControl <<-- playerAHand : 0 -deactivate playerAHand - -roundControl -> roundControl : score() -activate roundControl - -roundControl -> playerAHand : getSize() : int -activate playerAHand - -roundControl <<-- playerAHand : 0 -deactivate playerAHand - -roundControl -> playerAHand : getStonePoints() : int -activate playerAHand - -roundControl <<-- playerAHand : 0 -deactivate playerAHand - -roundControl -> playerBHand : getSize() : int -activate playerBHand - -roundControl <<-- playerBHand : 10 -deactivate playerBHand - -roundControl -> playerBHand : getStonePoints() : int -activate playerBHand - -roundControl <<-- playerBHand : 42 -deactivate playerBHand - -roundControl <<-- roundControl -deactivate roundControl - -[<- roundControl : endOfRoundEvent.emit(score) -[-->> roundControl - -turnControl4 <<-- roundControl -deactivate roundControl - -playerPanel <<-- turnControl4 -deactivate turnControl4 - -[<<-- playerPanel -deactivate playerPanel - -@enduml - - - -@startuml img/sequence_01.png -hide footbox - -participant view as "view\n: View" -participant handPanel as "handPanel\n: HandPanel" -participant roundControl as "roundControl\n: RoundControl" -participant ITurnControlFactory -participant humanTurnControlFactory as "humanTurnControlFactory\n: ITurnControlFactory" -participant turnControl as "turnControl\n: HumanTurnControl" -participant roundState as "roundState\n: RoundState" -participant playerB as "playerB\n: Player" -participant playerBSettings as "playerBSettings\n: PlayerSettings" - -== Initialize player B's turn == - -[-> view -activate view -view -> roundControl : startTurn() : void -activate roundControl - -roundControl -> roundState : getActivePlayer() : Player -activate roundState -roundControl <<-- roundState : playerB -deactivate roundState - -roundControl -> playerB : getPlayerSettings() : PlayerSettings -activate playerB -roundControl <<-- playerB : playerBSettings -deactivate playerB - -roundControl -> playerBSettings : getTurnControlType() : ITurnControlFactory.Type -activate playerBSettings -roundControl <<-- playerBSettings : HUMAN -deactivate playerBSettings - - -roundControl -> ITurnControlFactory : getFactory(HUMAN) : ITurnControlFactory -activate ITurnControlFactory - -create humanTurnControlFactory -ITurnControlFactory -> humanTurnControlFactory : <<create>> -activate humanTurnControlFactory -humanTurnControlFactory -->> ITurnControlFactory -deactivate humanTurnControlFactory - -ITurnControlFactory -->> roundControl : humanTurnControlFactory : ITurnControlFactory -deactivate ITurnControlFactory - -roundControl -> humanTurnControlFactory : create() : ITurnControl -activate humanTurnControlFactory -create turnControl -humanTurnControlFactory -> turnControl : <<create>> -activate turnControl -turnControl -->> humanTurnControlFactory -deactivate turnControl - -humanTurnControlFactory -->> roundControl : turnControl -deactivate humanTurnControlFactory - -' roundControl -> table : clone() -' activate table -' create clonedTable -' table -> clonedTable : <<create>> -' activate clonedTable -' table <<-- clonedTable -' deactivate clonedTable -' roundControl <<-- table : clonedTable -' deactivate table - -roundControl -> turnControl : setup(player, clonedTable, view, false, false) : void -activate turnControl -turnControl -->> roundControl -deactivate turnControl - -roundControl -> turnControl : startTurn() : void -activate turnControl - -turnControl -> handPanel : setStones(hand.clone()) : void -activate handPanel -handPanel -->> turnControl -deactivate handPanel - -turnControl -> view : setBottomPanel(HUMAN_HAND_PANEL) : void -activate view -view -->> turnControl -deactivate view - - -turnControl -->> roundControl -deactivate turnControl - -view <<-- roundControl -deactivate roundControl - -[<<-- view -deactivate view - -@enduml - -@startuml img/sequence_02.png -hide footbox - -participant view as "view\n: View" -participant handPanel as "handPanel\n: HandPanel" -participant playerPanel as "playerPanel\n: PlayerPanel" -participant tablePanel as "tablePanel\n: TablePanel" -participant turnControl as "turnControl\n: HumanTurnControl" -participant clonedTable as "clonedTable\n: Table" -participant playerBHand as "playerBHand\n: Hand" - -== Player B appends stone to set == - -[-> handPanel -activate handPanel - -handPanel -> turnControl : stoneClick(stone1, false) : void -activate turnControl - -turnControl -> view : setSelectedStones({stone1}) : void -activate view -turnControl <<- view -deactivate view - -handPanel <<-- turnControl -deactivate turnControl - -[<<-- handPanel -deactivate handPanel - -[-> tablePanel -activate tablePanel - -tablePanel -> turnControl : connectorClick(stoneSet1, true) : void -activate turnControl - -' TODO self calls? - -turnControl -> turnControl : pickUpSelectedStones() : void -activate turnControl - -turnControl -> playerBHand : pickUp(stone1) : boolean -activate playerBHand -turnControl <<-- playerBHand : true -deactivate playerBHand - -turnControl <<-- turnControl -deactivate turnControl - - -turnControl -> clonedTable : getPosition(stoneSet1) : Position -activate clonedTable -turnControl <<-- clonedTable : position -deactivate clonedTable - -turnControl -> clonedTable : pickUp(stoneSet1) : boolean -activate clonedTable -turnControl <<-- clonedTable : true -deactivate clonedTable - -turnControl -> clonedTable : drop(joinedStoneSet, newPosition) : void -activate clonedTable -turnControl <<-- clonedTable -deactivate clonedTable - -turnControl -> tablePanel : setStoneSets(clonedTable) : void -activate tablePanel -turnControl <<- tablePanel -deactivate tablePanel - -turnControl -> handPanel : setStones(playerBHand) : void -activate handPanel -turnControl <<- handPanel -deactivate handPanel - -turnControl -> view : setSelectedStones({}) : void -activate view -turnControl <<- view -deactivate view - - -tablePanel <<-- turnControl -deactivate turnControl - -[<<-- tablePanel -deactivate tablePanel - -@enduml - -@startuml img/sequence_03.png -hide footbox - -== End of player B's turn == - -participant view as "view\n: View" -participant playerPanel as "playerPanel\n: PlayerPanel" -participant tablePanel as "tablePanel\n: TablePanel" -participant roundControl as "roundControl\n: RoundControl" -participant turnControl as "turnControl\n: HumanTurnControl" -participant table as "table\n: Table" -participant clonedTable as "clonedTable\n: Table" -participant clonedTable2 as "clonedTable2\n: Table" -participant playerBHand as "playerBHand\n: Hand" -participant gameHeap as "gameHeap\n: StoneHeap" - -[-> playerPanel -activate playerPanel - -playerPanel -> turnControl : endOfTurn() : void -activate turnControl - -turnControl -> roundControl : endOfTurn() : void -activate roundControl - -roundControl -> roundControl : checkTurn() : void -activate roundControl - -roundControl -> clonedTable : isValid() : boolean -activate clonedTable - -roundControl <<-- clonedTable : false -deactivate clonedTable -destroy clonedTable - -roundControl -> roundControl : rejectMove() : void -activate roundControl - -roundControl -> gameHeap : putBack({stone1}) : void -activate gameHeap - -roundControl <<-- gameHeap -deactivate gameHeap - -loop 4 times -roundControl -> gameHeap : drawStone() : Stone -activate gameHeap - -roundControl <<-- gameHeap : stone -deactivate gameHeap - -roundControl -> playerBHand : drop(stone) : void -activate playerBHand - -roundControl <<-- playerBHand -deactivate playerBHand - -end - -' reject move -roundControl <<-- roundControl -deactivate roundControl - - -' check turn -roundControl <<-- roundControl -deactivate roundControl - -roundControl -> roundControl : prepareTurn() : void -activate roundControl - - -roundControl -> table : clone() -activate table -create clonedTable2 -table -> clonedTable2 : <<create>> -activate clonedTable2 -table <<-- clonedTable2 -deactivate clonedTable2 -roundControl <<-- table : clonedTable2 -deactivate table - -roundControl -> view : setBottomPanel(START_TURN_PANEL) : void -activate view -roundControl <<-- view -deactivate view - -roundControl -> tablePanel : setStoneSets(clonedTable2) : void -activate tablePanel -roundControl <<- tablePanel -deactivate tablePanel - - -roundControl <<-- roundControl -deactivate roundControl - - -turnControl <<-- roundControl -deactivate roundControl - -playerPanel <<-- turnControl -deactivate turnControl -destroy turnControl - -[<<-- playerPanel -deactivate playerPanel - - -@enduml - -@startuml img/sequence_04.png -hide footbox - -participant view as "view\n: View" -participant handPanel as "handPanel\n: HandPanel" -participant roundControl as "roundControl\n: RoundControl" -participant ITurnControlFactory -participant humanTurnControlFactory as "humanTurnControlFactory\n: ITurnControlFactory" -participant humanTurnControlFactory2 as "humanTurnControlFactory\n: ITurnControlFactory" -participant turnControl2 as "turnControl\n: HumanTurnControl" -participant roundState as "roundState\n: RoundState" -participant clonedTable2 as "clonedTable2\n: Table" -participant playerA as "playerA\n: Player" -participant playerASettings as "playerASettings\n: PlayerSettings" - - -== Initialize player A's turn == - -[-> view -activate view -view -> roundControl : startTurn() : void -activate roundControl - -roundControl -> roundState : getActivePlayer() : Player -activate roundState -roundControl <<-- roundState : playerA -deactivate roundState - -roundControl -> playerA : getPlayerSettings() : PlayerSettings -activate playerA -roundControl <<-- playerA : playerASettings -deactivate playerA - -roundControl -> playerASettings : getTurnControlType() : ITurnControlFactory.Type -activate playerASettings -roundControl <<-- playerASettings : HUMAN -deactivate playerASettings - - -roundControl -> ITurnControlFactory : getFactory(HUMAN) : ITurnControlFactory -activate ITurnControlFactory - -create humanTurnControlFactory -ITurnControlFactory -> humanTurnControlFactory2 : <<create>> -activate humanTurnControlFactory2 -humanTurnControlFactory2 -->> ITurnControlFactory -deactivate humanTurnControlFactory2 - -ITurnControlFactory -->> roundControl : humanTurnControlFactory2 : ITurnControlFactory -deactivate ITurnControlFactory - -roundControl -> humanTurnControlFactory2 : create() : ITurnControl -activate humanTurnControlFactory2 -create turnControl2 -humanTurnControlFactory -> turnControl2 : <<create>> -activate turnControl2 -turnControl2 -->> humanTurnControlFactory -deactivate turnControl2 - -humanTurnControlFactory2 -->> roundControl : turnControl2 -deactivate humanTurnControlFactory2 - -roundControl -> turnControl2 : setup(player, clonedTable2, view, false, false) : void -activate turnControl2 -turnControl2 -->> roundControl -deactivate turnControl2 - -roundControl -> turnControl2 : startTurn() : void -activate turnControl2 - -turnControl2 -> handPanel : setStones(hand.clone()) : void -activate handPanel -handPanel -->> turnControl2 -deactivate handPanel - -turnControl2 -> view : setBottomPanel(HUMAN_HAND_PANEL) : void -activate view -view -->> turnControl2 -deactivate view - - -turnControl2 -->> roundControl -deactivate turnControl2 - -view <<-- roundControl -deactivate roundControl - -[<<-- view -deactivate view - - -@enduml - -@startuml img/sequence_05.png -hide footbox - -participant view as "view\n: View" -participant playerPanel as "playerPanel\n: PlayerPanel" -participant tablePanel as "tablePanel\n: TablePanel" -participant roundControl as "roundControl\n: RoundControl" -participant turnControl as "turnControl\n: HumanTurnControl" -participant table as "table\n: Table" -participant clonedTable2 as "clonedTable2\n: Table" -participant clonedTable3 as "clonedTable3\n: Table" -participant playerAHand as "playerAHand\n: Hand" -participant gameHeap as "gameHeap\n: StoneHeap" - -== End of player A's turn == - -[-> playerPanel -activate playerPanel - -playerPanel -> turnControl : endOfTurn() : void -activate turnControl - -turnControl -> roundControl : endOfTurn() : void -activate roundControl - -roundControl -> roundControl : checkTurn() : void -activate roundControl - -roundControl -> clonedTable2 : isValid() : boolean -activate clonedTable2 - -roundControl <<-- clonedTable2 : true -deactivate clonedTable2 -destroy clonedTable2 - -roundControl -> roundControl : dealStone() : void -activate roundControl - - -roundControl -> gameHeap : drawStone() : Stone -activate gameHeap - -roundControl <<-- gameHeap : stone -deactivate gameHeap - -roundControl -> playerAHand : drop(stone) : void -activate playerAHand - -roundControl <<-- playerAHand -deactivate playerAHand - - -' deal stone -roundControl <<-- roundControl -deactivate roundControl - -' check turn -roundControl <<-- roundControl -deactivate roundControl - -roundControl -> roundControl : prepareTurn() : void -activate roundControl - - -roundControl -> table : clone() -activate table -create clonedTable3 -table -> clonedTable3 : <<create>> -activate clonedTable3 -table <<-- clonedTable3 -deactivate clonedTable3 -roundControl <<-- table : clonedTable3 -deactivate table - -roundControl -> view : setBottomPanel(START_TURN_PANEL) : void -activate view -roundControl <<-- view -deactivate view - -roundControl -> tablePanel : setStoneSets(clonedTable3) : void -activate tablePanel -roundControl <<- tablePanel -deactivate tablePanel - - -roundControl <<-- roundControl -deactivate roundControl - - -turnControl <<-- roundControl -deactivate roundControl - -playerPanel <<-- turnControl -deactivate turnControl -destroy turnControl - -[<<-- playerPanel -deactivate playerPanel - -@enduml - -@startuml img/sequence_06.png -hide footbox -participant view as "view\n: View" -participant handPanel as "handPanel\n: HandPanel" -participant roundControl as "roundControl\n: RoundControl" -participant ITurnControlFactory -participant humanTurnControlFactory3 as "humanTurnControlFactory\n: ITurnControlFactory" -participant turnControl3 as "turnControl\n: HumanTurnControl" -participant roundState as "roundState\n: RoundState" -participant clonedTable3 as "clonedTable3\n: Table" -participant playerB as "playerB\n: Player" -participant playerBSettings as "playerBSettings\n: PlayerSettings" - - -== Initialize player B's 2nd turn == - -[-> view -activate view -view -> roundControl : startTurn() : void -activate roundControl - -roundControl -> roundState : getActivePlayer() : Player -activate roundState -roundControl <<-- roundState : playerB -deactivate roundState - -roundControl -> playerB : getPlayerSettings() : PlayerSettings -activate playerB -roundControl <<-- playerB : playerBSettings -deactivate playerB - -roundControl -> playerBSettings : getTurnControlType() : ITurnControlFactory.Type -activate playerBSettings -roundControl <<-- playerBSettings : HUMAN -deactivate playerBSettings - - -roundControl -> ITurnControlFactory : getFactory(HUMAN) : ITurnControlFactory -activate ITurnControlFactory - -create humanTurnControlFactory3 -ITurnControlFactory -> humanTurnControlFactory3 : <<create>> -activate humanTurnControlFactory3 -humanTurnControlFactory3 -->> ITurnControlFactory -deactivate humanTurnControlFactory3 - -ITurnControlFactory -->> roundControl : humanTurnControlFactory3 : ITurnControlFactory -deactivate ITurnControlFactory - -roundControl -> humanTurnControlFactory3 : create() : ITurnControl -activate humanTurnControlFactory3 -create turnControl3 -humanTurnControlFactory3 -> turnControl3 : <<create>> -activate turnControl3 -turnControl3 -->> humanTurnControlFactory3 -deactivate turnControl3 - -humanTurnControlFactory3 -->> roundControl : turnControl3 -deactivate humanTurnControlFactory3 - -roundControl -> turnControl3 : setup(player, clonedTable3, view, false, false) : void -activate turnControl3 -turnControl3 -->> roundControl -deactivate turnControl3 - -roundControl -> turnControl3 : startTurn() : void -activate turnControl3 - -turnControl3 -> handPanel : setStones(hand.clone()) : void -activate handPanel -handPanel -->> turnControl3 -deactivate handPanel - -turnControl3 -> view : setBottomPanel(HUMAN_HAND_PANEL) : void -activate view -view -->> turnControl3 -deactivate view - - -turnControl3 -->> roundControl -deactivate turnControl3 - -view <<-- roundControl -deactivate roundControl - -[<<-- view -deactivate view - -@enduml - -@startuml img/sequence_07.png -hide footbox - -participant view as "view\n: View" -participant handPanel as "handPanel\n: HandPanel" -participant tablePanel as "tablePanel\n: TablePanel" -participant turnControl3 as "turnControl\n: HumanTurnControl" -participant table as "table\n: Table" -participant clonedTable3 as "clonedTable3\n: Table" -participant playerBHand as "playerBHand\n: Hand" - -== Player B's three stone set == - - -' first stone -[-> handPanel -activate handPanel - -handPanel -> turnControl3 : stoneClick(stone2, false) : void -activate turnControl3 - -turnControl3 -> view : setSelectedStones({stone2}) : void -activate view -turnControl3 <<- view -deactivate view - -handPanel <<-- turnControl3 -deactivate turnControl3 - -[<<-- handPanel -deactivate handPanel - -' second stone -[-> handPanel -activate handPanel - -handPanel -> turnControl3 : stoneClick(stone3, true) : void -activate turnControl3 - -turnControl3 -> view : setSelectedStones({stone2, stone3}) : void -activate view -turnControl3 <<- view -deactivate view - -handPanel <<-- turnControl3 -deactivate turnControl3 - -[<<-- handPanel -deactivate handPanel - -' third stone -[-> handPanel -activate handPanel - -handPanel -> turnControl3 : stoneClick(stone4, true) : void -activate turnControl3 - -turnControl3 -> view : setSelectedStones({stone2, stone3, stone4}) : void -activate view -turnControl3 <<- view -deactivate view - -handPanel <<-- turnControl3 -deactivate turnControl3 - -[<<-- handPanel -deactivate handPanel - -' put down - -[-> tablePanel -activate tablePanel - -tablePanel -> turnControl3 : tableClick(newPosition2) -activate turnControl3 -'pickups - -turnControl3 -> turnControl3 : pickUpSelectedStones() : void -activate turnControl3 - -turnControl3 -> playerBHand : pickUp(stone2) : boolean -activate playerBHand -turnControl3 <<-- playerBHand : true -deactivate playerBHand - -turnControl3 -> playerBHand : pickUp(stone3) : boolean -activate playerBHand -turnControl3 <<-- playerBHand : true -deactivate playerBHand - -turnControl3 -> playerBHand : pickUp(stone4) : boolean -activate playerBHand -turnControl3 <<-- playerBHand : true -deactivate playerBHand - - -turnControl3 <<-- turnControl3 -deactivate turnControl3 - -turnControl3 -> clonedTable3 : drop(stoneSet2, newPosition2) : void -activate clonedTable3 -turnControl3 <<-- clonedTable3 -deactivate clonedTable3 - - -turnControl3 -> tablePanel : setStoneSets(clonedTable3) : void -activate tablePanel -turnControl3 <<- tablePanel -deactivate tablePanel - -turnControl3 -> handPanel : setStones(playerBHand) : void -activate handPanel -turnControl3 <<- handPanel -deactivate handPanel - -turnControl3 -> view : setSelectedStones({}) : void -activate view -turnControl3 <<- view -deactivate view - -tablePanel <<-- turnControl3 -deactivate turnControl3 - -[<<-- tablePanel -deactivate tablePanel - -@enduml - -@startuml img/sequence_08.png -hide footbox - -participant view as "view\n: View" -participant playerPanel as "playerPanel\n: PlayerPanel" -participant tablePanel as "tablePanel\n: TablePanel" -participant roundControl as "roundControl\n: RoundControl" -participant turnControl3 as "turnControl\n: HumanTurnControl" -participant table as "table\n: Table" -participant clonedTable3 as "clonedTable3\n: Table" -participant clonedTable4 as "clonedTable4\n: Table" -participant playerBHand as "playerBHand\n: Hand" - -== Player B ends the 2nd turn == - -[-> playerPanel -activate playerPanel - -playerPanel -> turnControl3 : endOfTurn() : void -activate turnControl3 - -turnControl3 -> roundControl : endOfTurn() : void -activate roundControl - -roundControl -> roundControl : checkTurn() : void -activate roundControl - -roundControl -> clonedTable3 : isValid() : boolean -activate clonedTable3 - -roundControl <<-- clonedTable3 : true -deactivate clonedTable3 - -' check turn -roundControl <<-- roundControl -deactivate roundControl - -roundControl -> playerBHand : getSize() : int -activate playerBHand - -roundControl <<-- playerBHand : 10 -deactivate playerBHand - -roundControl -> roundControl : prepareTurn() : void -activate roundControl - -roundControl -> clonedTable3 : clone() -activate clonedTable3 -create clonedTable4 -table -> clonedTable4 : <<create>> -activate clonedTable4 -table <<-- clonedTable4 -deactivate clonedTable4 -roundControl <<-- clonedTable3 : clonedTable4 -deactivate clonedTable3 - -roundControl -> view : setBottomPanel(START_TURN_PANEL) : void -activate view -roundControl <<-- view -deactivate view - -roundControl -> tablePanel : setStoneSets(clonedTable4) : void -activate tablePanel -roundControl <<- tablePanel -deactivate tablePanel - -roundControl <<-- roundControl -deactivate roundControl - -turnControl3 <<-- roundControl -deactivate roundControl - -playerPanel <<-- turnControl3 -deactivate turnControl3 -destroy turnControl3 - -[<<-- playerPanel -deactivate playerPanel - -@enduml - -@startuml img/sequence_09.png -hide footbox - -participant view as "view\n: View" -participant handPanel as "handPanel\n: HandPanel" -participant roundControl as "roundControl\n: RoundControl" -participant ITurnControlFactory -participant humanTurnControlFactory as "humanTurnControlFactory\n: ITurnControlFactory" -participant humanTurnControlFactory4 as "humanTurnControlFactory\n: ITurnControlFactory" -participant turnControl4 as "turnControl\n: HumanTurnControl" -participant roundState as "roundState\n: RoundState" -participant clonedTable4 as "clonedTable4\n: Table" -participant playerA as "playerA\n: Player" -participant playerASettings as "playerASettings\n: PlayerSettings" - - -== Initialize player A's 2nd turn == - -[-> view -activate view -view -> roundControl : startTurn() : void -activate roundControl - -roundControl -> roundState : getActivePlayer() : Player -activate roundState -roundControl <<-- roundState : playerA -deactivate roundState - -roundControl -> playerA : getPlayerSettings() : PlayerSettings -activate playerA -roundControl <<-- playerA : playerASettings -deactivate playerA - -roundControl -> playerASettings : getTurnControlType() : ITurnControlFactory.Type -activate playerASettings -roundControl <<-- playerASettings : HUMAN -deactivate playerASettings - - -roundControl -> ITurnControlFactory : getFactory(HUMAN) : ITurnControlFactory -activate ITurnControlFactory - -create humanTurnControlFactory -ITurnControlFactory -> humanTurnControlFactory4 : <<create>> -activate humanTurnControlFactory4 -humanTurnControlFactory4 -->> ITurnControlFactory -deactivate humanTurnControlFactory4 - -ITurnControlFactory -->> roundControl : humanTurnControlFactory4 : ITurnControlFactory -deactivate ITurnControlFactory - -roundControl -> humanTurnControlFactory4 : create() : ITurnControl -activate humanTurnControlFactory4 -create turnControl4 -humanTurnControlFactory -> turnControl4 : <<create>> -activate turnControl4 -turnControl4 -->> humanTurnControlFactory -deactivate turnControl4 - -humanTurnControlFactory4 -->> roundControl : turnControl4 -deactivate humanTurnControlFactory4 - -roundControl -> turnControl4 : setup(player, clonedTable4, view, false, false) : void -activate turnControl4 -turnControl4 -->> roundControl -deactivate turnControl4 - -roundControl -> turnControl4 : startTurn() : void -activate turnControl4 - -turnControl4 -> handPanel : setStones(hand.clone()) : void -activate handPanel -handPanel -->> turnControl4 -deactivate handPanel - -turnControl4 -> view : setBottomPanel(HUMAN_HAND_PANEL) : void -activate view -view -->> turnControl4 -deactivate view - - -turnControl4 -->> roundControl -deactivate turnControl4 - -view <<-- roundControl -deactivate roundControl - -[<<-- view -deactivate view - -@enduml - -@startuml img/sequence_10.png -hide footbox - -participant view as "view\n: View" -participant handPanel as "handPanel\n: HandPanel" -participant tablePanel as "tablePanel\n: TablePanel" -participant turnControl4 as "turnControl\n: HumanTurnControl" -participant clonedTable4 as "clonedTable4\n: Table" -participant playerAHand as "playerAHand\n: Hand" - -== Player A appends two stones to set == - -[-> handPanel -activate handPanel - -handPanel -> turnControl4 : stoneClick(stone5, false) : void -activate turnControl4 - -turnControl4 -> view : setSelectedStones({stone5}) : void -activate view -turnControl4 <<- view -deactivate view - -handPanel <<-- turnControl4 -deactivate turnControl4 - -[<<-- handPanel -deactivate handPanel - -[-> handPanel -activate handPanel - -handPanel -> turnControl4 : stoneClick(stone6, true) : void -activate turnControl4 - -turnControl4 -> view : setSelectedStones({stone5, stone6}) : void -activate view -turnControl4 <<- view -deactivate view - -handPanel <<-- turnControl4 -deactivate turnControl4 - -[<<-- handPanel -deactivate handPanel - - -[-> tablePanel -activate tablePanel - -tablePanel -> turnControl4 : connectorClick(stoneSet3, true) : void -activate turnControl4 - -' TODO self calls? - -turnControl4 -> turnControl4 : pickUpSelectedStones() : void -activate turnControl4 - -turnControl4 -> playerAHand : pickUp(stone5) : boolean -activate playerAHand -turnControl4 <<-- playerAHand : true -deactivate playerAHand - -turnControl4 -> playerAHand : pickUp(stone6) : boolean -activate playerAHand -turnControl4 <<-- playerAHand : true -deactivate playerAHand - - -turnControl4 <<-- turnControl4 -deactivate turnControl4 - - -turnControl4 -> clonedTable4 : getPosition(stoneSet3) : Position -activate clonedTable4 -turnControl4 <<-- clonedTable4 : position2 -deactivate clonedTable4 - -turnControl4 -> clonedTable4 : pickUp(stoneSet3) : boolean -activate clonedTable4 -turnControl4 <<-- clonedTable4 : true -deactivate clonedTable4 - -turnControl4 -> clonedTable4 : drop(joinedStoneSet2, newPosition2) : void -activate clonedTable4 -turnControl4 <<-- clonedTable4 -deactivate clonedTable4 - -turnControl4 -> tablePanel : setStoneSets(clonedTable4) : void -activate tablePanel -turnControl4 <<- tablePanel -deactivate tablePanel - -turnControl4 -> handPanel : setStones(playerAHand) : void -activate handPanel -turnControl4 <<- handPanel -deactivate handPanel - -turnControl4 -> view : setSelectedStones({}) : void -activate view -turnControl4 <<- view -deactivate view - - -tablePanel <<-- turnControl4 -deactivate turnControl4 - -[<<-- tablePanel -deactivate tablePanel - -@enduml - -@startuml img/sequence_11.png -hide footbox - -participant playerPanel as "playerPanel\n: PlayerPanel" -participant roundControl as "roundControl\n: RoundControl" -participant turnControl4 as "turnControl\n: HumanTurnControl" -participant clonedTable4 as "clonedTable4\n: Table" -participant playerAHand as "playerAHand\n: Hand" -participant playerBHand as "playerBHand\n: Hand" - -== Player A ends the 2nd turn == - -[-> playerPanel -activate playerPanel - -playerPanel -> turnControl4 : endOfTurn() : void -activate turnControl4 - -turnControl4 -> roundControl : endOfTurn() : void -activate roundControl - -roundControl -> roundControl : checkTurn() : void -activate roundControl - -roundControl -> clonedTable4 : isValid() : boolean -activate clonedTable4 - -roundControl <<-- clonedTable4 : true -deactivate clonedTable4 - -' check turn -roundControl <<-- roundControl -deactivate roundControl - -roundControl -> playerAHand : getSize() : int -activate playerAHand - -roundControl <<-- playerAHand : 0 -deactivate playerAHand - -roundControl -> roundControl : score() -activate roundControl - -roundControl -> playerAHand : getSize() : int -activate playerAHand - -roundControl <<-- playerAHand : 0 -deactivate playerAHand - -roundControl -> playerAHand : getStonePoints() : int -activate playerAHand - -roundControl <<-- playerAHand : 0 -deactivate playerAHand - -roundControl -> playerBHand : getSize() : int -activate playerBHand - -roundControl <<-- playerBHand : 10 -deactivate playerBHand - -roundControl -> playerBHand : getStonePoints() : int -activate playerBHand - -roundControl <<-- playerBHand : 42 -deactivate playerBHand - -roundControl <<-- roundControl -deactivate roundControl - -[<- roundControl : endOfRoundEvent.emit(score) -[-->> roundControl - -turnControl4 <<-- roundControl -deactivate roundControl - -playerPanel <<-- turnControl4 -deactivate turnControl4 - -[<<-- playerPanel -deactivate playerPanel - -@enduml |