diff --git a/Documentation/conception/diagramme_de_classes.md b/Documentation/conception/diagramme_de_classes.md new file mode 100644 index 0000000..5781895 --- /dev/null +++ b/Documentation/conception/diagramme_de_classes.md @@ -0,0 +1,107 @@ +```plantuml + +@startuml + +enum Couleur { + ROUGE + VERT + BLEU + JAUNE + NOIR + BLANC +} + +enum Indicateur { + BONNEPLACE + BONNECOULEUR +} + +class Jeton { + +Jeton(couleur: Couleur) +} + +Jeton *--> Couleur: +Couleur: Couleur + +class Code { + +Code(tailleCode: int) + +Code(jetons: Jeton?[]) + +AjouterJeton(jeton: Jeton): void + +SupprimerDernierJeton(): void + +RecupererJeton(indice: int): void + +Jetons(): Jeton?[] + +EstComplet(): bool + +TailleMaximale(): int + +Comparer(autreCode: Code): Indicateur[] + + +NbJetons: int = 0 +} + +Code o--> Jeton: -lesJeton: Jeton?[] + +class Plateau { + -random: Random + -tailleCode: int + + +Plateau(tailleCode: int, tailleGrille: int) + +GenererCodeAleatoire(): void + +EstComplet(): bool + +AjouterCode(code: Code): void + +EstBonCode(code: Code): bool + +Grille(): Jeton?[][] + +Indicateurs(): Indicateur[][] + + +Victoire: bool = false + +Tour: int = 1 +} + +Plateau *--> Code: -codeSecret: Code +Plateau *--> Code: -grille: Code?[] +Plateau *--> Indicateur: -indicateurs: Indicateur[][] + + +class Joueur { + +Joueur(nom: string, plateau: Plateau) + + +Nom: string +} + +Joueur *--> Plateau: +Plateau: Plateau + + +interface IRegles { + +AjouterJoueur(joueur: string): void + +JoueurCourant(): Joueur + +PasserLaMain(): void + +GenererCode(): Code + +CommencerLaPartie(): void + +EstTerminee(): bool + +Gagnants(): Joueur[] + +Perdants(): Joueur[] + + +Nom: string + +TourMaximum: int + +TailleCodeMaximum: int + +NbJoueurs: int + +NbJoueursMaximum: int +} + + +class ReglesClassiques { + +nbJoueurs: int = 0 + +joueurCourant: int? + +joueurs: Joueur[] + + +ReglesClassiques() + + +Nom: string = "Règles classiques" + +TourMaximum: int = 12 + +TailleCodeMaximum: int = 4 + +NbJoueurs: int + +NbJoueursMaximum: int = 2 +} + +ReglesClassiques ..|> IRegles + +@enduml + +```