You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

86 lines
2.2 KiB

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

# La course de dé (version JavaFX)
L'objectif de ce TP est d'ajouter une interface graphique au jeu de dé que vous avez codé en C++ en première année. Pour rappel :
> La «course de dé» se joue en lançant un dé. Les joueurs jouent tour à tour (pour ce TP nous nous limiterons à deux joueurs). Lorsque c'est à son tour, le joueur lance un dé et, tant qu'il ne fait pas 1, accumule les points des lancers successifs. S'il fait 1, il perd les points qu'il avait accumulés pendant son tour de jeu et la main passe, c'est à l'autre joueur de jouer. Un joueur peut sciemment décider d'arrêter de lancer le dé et ainsi sécuriser le score de son tour de jeu. Le premier joueur qui atteint un score de victoire (par exemple 50) gagne.
Afin de vous concenter sur l'interface graphique, nous vous fournissons la version Java du jeu que vous avez codé en C++. La conception de ce dernier est rappelé ci-dessous.
```plantuml
@startuml
skinparam defaultFontName Tahoma
skinparam classAttributeIconSize 0
skinparam monochrome true
skinparam shadowing false
skinparam linetype ortho
skinparam class {
BackgroundColor transparent
}
skinparam package {
BackgroundColor transparent
}
hide circle
package launcher {
class ConsoleGame {
+{static} main(args : String[])
}
}
package model {
class Dice {
-{static}NB_FACES_DEFAULT : int = 6 {frozen}
-nbFaces : int
-value : int
+Dice(nbFaces : int)
+Dice()
+getValue() : int
+roll() : int
+clear()
}
class Player {
-{static}num : int = 0
-name : string
-totalScore : int
-currentScore : int
+Player(name : string)
+Player()
+getName() : string
+getCurrentScore() : int
+setCurrentScore(score : int)
+getTotalScore() : int
+setTotalScore(score : int)
}
class Game {
+{static}LOSE_DICE_VALUE : int = 1 {frozen}
+{static}SCORE_TO_WIN : int = 50 {frozen}
-gameOver : boolean
-currentPlayerIndex : int
+Game()
+addPlayer(player : Player)
+getCurrentPlayer() : Player
+rollDice()
+getDiceValue() : int
+isGameOver() : boolean
+passToNextPlayer()
+restart()
}
Game --> "-dice" Dice
Game --> "*\n-players" Player
ConsoleGame ..> Game
}
@enduml
```