classDiagram
direction TB
class Game {
-board: Board
-players: Queue~Player~
-dice: Dice
-rules: Rules
-winner
+playTurn() TurnResult
+start()
}
class Board {
+size: int
-snakes: List~Snake~
-ladders: List~Ladder~
+nextPosition(curr, roll)
}
class Player {
+id
+name
+position: int
}
class Dice {
+sides: int
+count: int
+roll() int
}
class Snake {
+head
+tail
}
class Ladder {
+bottom
+top
}
class Rules {
+diceForExtraTurn
+mustLandExactlyAtEnd
+killOnSameCell
}
Game *-- Board
Game *-- "many" Player
Game --> Dice
Game --> Rules
Board *-- "many" Snake
Board *-- "many" Ladder