73 lines
1.6 KiB
Plaintext
73 lines
1.6 KiB
Plaintext
|
|
---
|
||
|
|
title: GameAPI - Diagramme de classes (complet)
|
||
|
|
---
|
||
|
|
classDiagram
|
||
|
|
|
||
|
|
class AbstractBoard{
|
||
|
|
<<abstract>>
|
||
|
|
-currentPlayer: Player
|
||
|
|
-history: Deque<AbstractPly>
|
||
|
|
|
||
|
|
+AbstractBoard(Player p, Deque<AbstractPly> h)
|
||
|
|
#setNextPlayer(): void
|
||
|
|
#addPlyToHistory(AbstractPly c): void
|
||
|
|
#removePlyFromHistory(): AbstractPly
|
||
|
|
#getLastPlyFromHistory(): AbstractPly
|
||
|
|
+getCurrentPlayer()
|
||
|
|
+isGameOver(): boolean
|
||
|
|
+getResult(): Result
|
||
|
|
+isLegal(AbstractPly c): boolean
|
||
|
|
+iterator(): Iterator<AbstractPly>
|
||
|
|
+doPly(AbstractPly c): void
|
||
|
|
+undoPly(): void
|
||
|
|
+safeCopy(): IBoard
|
||
|
|
}
|
||
|
|
|
||
|
|
class AbstractGame{
|
||
|
|
<<abstract>>
|
||
|
|
-currentBoard: IBoard
|
||
|
|
-mapPlayers: EnumMap<Player, AbstractGamePlayer>
|
||
|
|
|
||
|
|
+AbstractGame(IBoard b, EnumMap<Player,AbstractGamePlayer> m)
|
||
|
|
+run(): Result
|
||
|
|
}
|
||
|
|
|
||
|
|
class AbstractGamePlayer{
|
||
|
|
<<abstract>>
|
||
|
|
-iAm: Player
|
||
|
|
|
||
|
|
+AbstractGamePlayer(Player p)
|
||
|
|
+giveYourMove(IBoard p): AbstractPly
|
||
|
|
}
|
||
|
|
|
||
|
|
class AbstractPly{
|
||
|
|
<<abstract>>
|
||
|
|
-joueur: Player
|
||
|
|
|
||
|
|
+AbstractPly(Player j)
|
||
|
|
+getPlayer(): Player
|
||
|
|
}
|
||
|
|
|
||
|
|
class IBoard{
|
||
|
|
+getCurrentPlayer(): Player
|
||
|
|
+isGameOver(): boolean
|
||
|
|
+getResult(): Result
|
||
|
|
+isLegal(AbstractPly c): boolean
|
||
|
|
+iterator(): Iterator<AbstractPly>
|
||
|
|
+doPly(AbstractPly c): void
|
||
|
|
+undoPly(): void
|
||
|
|
+safeCopy(): IBoard
|
||
|
|
}
|
||
|
|
|
||
|
|
class Player{
|
||
|
|
<<enumerate>>
|
||
|
|
PLAYER1
|
||
|
|
PLAYER2
|
||
|
|
}
|
||
|
|
|
||
|
|
class Result{
|
||
|
|
<<enumerate>>
|
||
|
|
WIN
|
||
|
|
DRAW
|
||
|
|
LOSS
|
||
|
|
}
|