summaryrefslogtreecommitdiffstats
path: root/uml/sequence/sequence.plant
diff options
context:
space:
mode:
Diffstat (limited to 'uml/sequence/sequence.plant')
-rw-r--r--uml/sequence/sequence.plant2032
1 files changed, 0 insertions, 2032 deletions
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