From ce8cac16582f489ab6ede18260fc428c5f04f23b Mon Sep 17 00:00:00 2001 From: "camille.turpin-etienne" Date: Wed, 10 Apr 2024 16:11:04 +0200 Subject: [PATCH] Class Joueur et Partie + methode ajouterCombinaisons dans la class Plateau --- BibliothequeClasses/Jeton.cs | 16 +++++- BibliothequeClasses/JetonIndicateur.cs | 19 ++++--- BibliothequeClasses/JetonJoueur.cs | 14 +++-- BibliothequeClasses/Joueur.cs | 55 ++++++++++++++++++ BibliothequeClasses/Partie.cs | 78 ++++++++++++++++++++++++++ BibliothequeClasses/Plateau.cs | 33 ++++++----- BibliothequeClasses/abc.cs | 20 +++++++ BibliothequeClasses/couleurs.cs | 32 ++++++----- 8 files changed, 223 insertions(+), 44 deletions(-) create mode 100644 BibliothequeClasses/Joueur.cs create mode 100644 BibliothequeClasses/Partie.cs create mode 100644 BibliothequeClasses/abc.cs diff --git a/BibliothequeClasses/Jeton.cs b/BibliothequeClasses/Jeton.cs index 7286dfb..ecf62c0 100644 --- a/BibliothequeClasses/Jeton.cs +++ b/BibliothequeClasses/Jeton.cs @@ -1,14 +1,24 @@ -namespace BibliothequeClasses +using System; + +namespace BibliothequeClasses { /// - /// Class Jeton qui nous permet de recuperer la couleur du jeton et de pouvoir la changer + /// Représente un jeton de jeu qui permet de récupérer et de modifier sa couleur. /// public abstract class Jeton { - protected Jeton(Couleur couleur) + /// + /// Initialise une nouvelle instance de la classe Jeton avec la couleur spécifiée. + /// + /// La couleur du jeton. + protected Jeton(Couleur couleur) { this.Couleur = couleur; } + + /// + /// Obtient la couleur du jeton. + /// public Couleur Couleur { get; diff --git a/BibliothequeClasses/JetonIndicateur.cs b/BibliothequeClasses/JetonIndicateur.cs index ac264d1..62866ef 100644 --- a/BibliothequeClasses/JetonIndicateur.cs +++ b/BibliothequeClasses/JetonIndicateur.cs @@ -7,20 +7,23 @@ using System.Threading.Tasks; namespace BibliothequeClasses { /// - /// Class fille de la class Jeton - /// Class JetonIndicateur qui créé un jeton du joueur avec une des couleurs de l'enum couleur + /// Représente un jeton indicateur, une classe dérivée de la classe Jeton. /// public class JetonIndicateur : Jeton { - public JetonIndicateur(Couleur couleur) - :base(couleur) + /// + /// Initialise une nouvelle instance de la classe JetonIndicateur avec la couleur spécifiée. + /// + /// La couleur du jeton. + /// Levée si la couleur spécifiée n'est pas Noir ou Blanc. + public JetonIndicateur(Couleur couleur) + : base(couleur) { - if(couleur < Couleur.Noir) + if (couleur < Couleur.Noir) { - throw new ArgumentException("La couleur doit etre Noir ou Blanche"); + throw new ArgumentException("La couleur doit être Noir ou Blanc"); } - - } } } + diff --git a/BibliothequeClasses/JetonJoueur.cs b/BibliothequeClasses/JetonJoueur.cs index 37d617d..487e6a7 100644 --- a/BibliothequeClasses/JetonJoueur.cs +++ b/BibliothequeClasses/JetonJoueur.cs @@ -7,15 +7,19 @@ using System.Threading.Tasks; namespace BibliothequeClasses { /// - /// Class fille de la class Jeton - /// Class JetonJoueur qui créé un jeton du joueur avec une des couleurs de l'enum couleur + /// Représente un jeton joueur, une classe dérivée de la classe Jeton. /// public class JetonJoueur : Jeton { - public JetonJoueur(Couleur couleur) - :base(couleur) + /// + /// Initialise une nouvelle instance de la classe JetonJoueur avec la couleur spécifiée. + /// + /// La couleur du jeton. + public JetonJoueur(Couleur couleur) + : base(couleur) { - + } } } + diff --git a/BibliothequeClasses/Joueur.cs b/BibliothequeClasses/Joueur.cs new file mode 100644 index 0000000..e72b92e --- /dev/null +++ b/BibliothequeClasses/Joueur.cs @@ -0,0 +1,55 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System; + +namespace BibliothequeClasses +{ + /// + /// Représente un joueur dans une partie. + /// + public class Joueur + { + private Plateau plateau; + private bool gagne; + + /// + /// Initialise une nouvelle instance de la classe avec le nom spécifié. + /// + /// Le nom du joueur. + public Joueur(string nom) + { + this.Nom = nom; + this.plateau = new Plateau(); + } + + /// + /// Obtient ou définit le nom du joueur. + /// + public string Nom + { + get; + set; + } + + /// + /// Joue une combinaison pour ce joueur sur le plateau. + /// + /// La combinaison à jouer. + public void JouerCombinaison(CombinaisonJoueur combinaisonJoueur) + { + gagne = plateau.AjouterCombinaison(combinaisonJoueur); + } + + /// + /// Détermine si le joueur a gagné la partie. + /// + /// True si le joueur a gagné, sinon False. + public bool AGagne() + { + return gagne; + } + } +} diff --git a/BibliothequeClasses/Partie.cs b/BibliothequeClasses/Partie.cs new file mode 100644 index 0000000..457ac37 --- /dev/null +++ b/BibliothequeClasses/Partie.cs @@ -0,0 +1,78 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BibliothequeClasses +{ + /// + /// Représente une partie du jeu. + /// + public class Partie + { + private int tour; + private Joueur joueur1; + private Joueur joueur2; + private Joueur joueurCourant; + + /// + /// Initialise une nouvelle instance de la classe Partie avec les noms des joueurs. + /// + /// Le nom du premier joueur. + /// Le nom du deuxième joueur. + public Partie(string nomJoueur1, string nomJoueur2) + { + this.tour = 1; + this.joueur1 = new Joueur(nomJoueur1); + this.joueur2 = new Joueur(nomJoueur2); + this.joueurCourant = this.joueur1; + } + + /// + /// Récupère le joueur qui joue actuellement. + /// + /// Le joueur actuel. + public Joueur GetJoueur() + { + return this.joueurCourant; + } + + /// + /// Passe la main au prochain joueur. + /// + public void PasserlaMain() + { + if (this.joueurCourant == this.joueur1) + { + this.joueurCourant = this.joueur2; + } + else + { + this.joueurCourant = this.joueur1; + } + tour++; + } + + /// + /// Détermine si la partie est terminée. + /// + /// True si la partie est terminée, sinon False. + public bool EstTerminer() + { + const int nbMaxTour = 24; + if (joueurCourant.AGagne()) + { + return true; + } + + if (tour == nbMaxTour) + { + return true; + } + + return false; + } + } +} + diff --git a/BibliothequeClasses/Plateau.cs b/BibliothequeClasses/Plateau.cs index 6acadcc..4b81db9 100644 --- a/BibliothequeClasses/Plateau.cs +++ b/BibliothequeClasses/Plateau.cs @@ -3,14 +3,12 @@ using System.ComponentModel.DataAnnotations; using System.Reflection; using System.Collections.Generic; - - namespace BibliothequeClasses { /// - /// Class plateau qui initialise deux tableaux à 12. - /// Il a deux methodes une pour ajouter une combinaison dans le tableaux et une autres pour verifier si le tableau est plein. + /// Représente le plateau de jeu qui initialise deux tableaux de taille 12. + /// Il possède deux méthodes : une pour ajouter une combinaison dans le tableau et une autre pour vérifier si le tableau est plein. /// public class Plateau { @@ -19,23 +17,32 @@ namespace BibliothequeClasses private CombinaisonJoueur[] lesCombinaisonsJoueur = new CombinaisonJoueur[tailleMax]; private Combinaison[] lesCombinaisonsIndicateur = new CombinaisonIndicateur[tailleMax]; private int index = 0; + + /// + /// Ajoute une combinaison de joueur au plateau. + /// + /// La combinaison du joueur à ajouter. + /// True si la combinaison correspond à la combinaison secrète, sinon False. public bool AjouterCombinaison(CombinaisonJoueur combinaisonJoueur) { - if (estComplet() == false) + if (EstComplet()) { - lesCombinaisonsJoueur[index] = combinaisonJoueur; - index++; - return true; - } - else - { - throw new Exception("Le plateau est plein, impossible d'ajouter une combinaison supplémentaire."); + throw new Exception("Le plateau est plein, impossible d'ajouter une combinaison supplémentaire."); } + + lesCombinaisonsJoueur[index] = combinaisonJoueur; + index++; + return combinaisonSecrete.EstEgal(combinaisonJoueur); } - public bool estComplet() + /// + /// Vérifie si le plateau est complet. + /// + /// True si le plateau est plein, sinon False. + public bool EstComplet() { return index >= tailleMax; } } } + diff --git a/BibliothequeClasses/abc.cs b/BibliothequeClasses/abc.cs new file mode 100644 index 0000000..f494391 --- /dev/null +++ b/BibliothequeClasses/abc.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BibliothequeClasses +{ + public abstract class Combinaison; + public class CombinaisonSecrete : Combinaison + { + public bool EstEgal(CombinaisonJoueur combinaisonJoueur) + { + return true; + } + }; + public class CombinaisonJoueur : Combinaison; + public class CombinaisonIndicateur : Combinaison; + +} diff --git a/BibliothequeClasses/couleurs.cs b/BibliothequeClasses/couleurs.cs index b95144e..0dd735a 100644 --- a/BibliothequeClasses/couleurs.cs +++ b/BibliothequeClasses/couleurs.cs @@ -1,15 +1,17 @@ -namespace BibliothequeClasses -{ - /// - /// Enumeration des 6 couleurs que peuvent prendre les jetons - /// - public enum Couleur - { - Rouge, - Bleu, - Vert, - Jaune, - Noir = 100, - Blanc, - } -} \ No newline at end of file +using System; + +namespace BibliothequeClasses +{ + /// + /// Énumération représentant les 6 couleurs que peuvent prendre les jetons. + /// + public enum Couleur + { + Rouge, + Bleu, + Vert, + Jaune, + Noir = 100, + Blanc, + } +}