diff --git a/Documentation/conception/diagramme_de_classes.md b/Documentation/conception/diagramme_de_classes.md index 5781895..1baeefd 100644 --- a/Documentation/conception/diagramme_de_classes.md +++ b/Documentation/conception/diagramme_de_classes.md @@ -1,5 +1,6 @@ ```plantuml + @startuml enum Couleur { @@ -16,24 +17,27 @@ enum Indicateur { BONNECOULEUR } -class Jeton { +struct Jeton { + --- + --- +Jeton(couleur: Couleur) } Jeton *--> Couleur: +Couleur: Couleur class Code { + --- + +NbJetons: int = 0 + --- +Code(tailleCode: int) - +Code(jetons: Jeton?[]) + +Code(jetons: Jeton[]) +AjouterJeton(jeton: Jeton): void +SupprimerDernierJeton(): void - +RecupererJeton(indice: int): void + +RecupererJeton(indice: int): Jeton +Jetons(): Jeton?[] +EstComplet(): bool +TailleMaximale(): int +Comparer(autreCode: Code): Indicateur[] - - +NbJetons: int = 0 } Code o--> Jeton: -lesJeton: Jeton?[] @@ -41,7 +45,10 @@ Code o--> Jeton: -lesJeton: Jeton?[] class Plateau { -random: Random -tailleCode: int - + --- + +Victoire: bool = false + +Tour: int = 1 + --- +Plateau(tailleCode: int, tailleGrille: int) +GenererCodeAleatoire(): void +EstComplet(): bool @@ -49,9 +56,6 @@ class Plateau { +EstBonCode(code: Code): bool +Grille(): Jeton?[][] +Indicateurs(): Indicateur[][] - - +Victoire: bool = false - +Tour: int = 1 } Plateau *--> Code: -codeSecret: Code @@ -60,16 +64,24 @@ Plateau *--> Indicateur: -indicateurs: Indicateur[][] class Joueur { - +Joueur(nom: string, plateau: Plateau) - + --- +Nom: string + --- + +Joueur(nom: string, plateau: Plateau) } Joueur *--> Plateau: +Plateau: Plateau interface IRegles { - +AjouterJoueur(joueur: string): void + --- + +Nom: string + +TourMaximum: int + +TailleCodeMaximum: int + +NbJoueurs: int + +NbJoueursMaximum: int + --- + +AjouterJoueur(joueur: string): Joueur +JoueurCourant(): Joueur +PasserLaMain(): void +GenererCode(): Code @@ -77,30 +89,60 @@ interface IRegles { +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() - + -nbJoueurs: int = 0 + -joueurCourant: int? + --- +Nom: string = "Règles classiques" +TourMaximum: int = 12 +TailleCodeMaximum: int = 4 +NbJoueurs: int +NbJoueursMaximum: int = 2 + --- + +ReglesClassiques() +} + +IRegles <|.. ReglesClassiques + +ReglesClassiques *--> Joueur: -joueurs: Joueur[] + + + +class Partie { + --- + +StringEventHandler(sender: Object?, e: TEventArgs): string? + +JetonEventHandler(sender: Object?, e: TEventArgs): Jeton + --- + +DemanderJoueur: StringEventHandler? + +DemanderJeton: JetonEventHandler? + +AjouterJoueur: EventHandler? + +DebutPartie: EventHandler? + +NouveauTour: EventHandler? + +NouveauJeton: EventHandler? + +NouveauCode: EventHandler? + +PasserMain: EventHandler? + +PartieTerminee: EventHandler? + --- + -QuandDemanderJoueur(int numero): string? + -QuandDemanderJeton(): Jeton? + -QuandAjouterJoueur(Joueur joueur): void + -QuandDebutPartie(): void + -QuandNouveauTour(Joueur joueur, int tour, Jeton?[][] grille, Indicateur[][] indicateurs): void + -QuandNouveauJeton(Jeton jeton): void + -QuandNouveauCode(Code: code): void + -QuandPasserMain(): void + -QuandPartieTerminee(Joueur[] gagnants, Joueur[] perdants): void + +Partie(IRegles regles) + +Jouer(): void } -ReglesClassiques ..|> IRegles + +Partie *--> IRegles: -regles: IRegles + + @enduml