// Initialise la partie public Partie(Joueur joueur1, Joueur joueur2) { // Initialise les joueurs joueur = new Joueur[2]; joueur[0] = joueur1; joueur[1] = joueur2; // Pas encore de match nul matchNul = false; // Initialise le plateau lePlateau = new MyPlateau(joueur1, joueur2); }
// Rend une case occupé par un joueur // Renvoie true si la case a pu être occupé // Sinon false public bool occuperCase(Joueur unJoueur) { // Si la case n'est pas occupée if (!isOccupe) { // On assigne la case au joueur leJoueur = unJoueur; isOccupe = true; return true; } // Si la case est déjà occupée else { // Renvoie false return false; } }
bool matchNul; // True en cas de match nul #endregion Fields #region Constructors // Construit le plateau public MyPlateau(Joueur joueur1, Joueur joueur2) { //nbLignes = 6; //nbColonnes = 7; // Crée un tableau de 6 lignes, 7 colonnes lesCases = new Case[nbLignes, nbColonnes]; // Alloue le tableau for (int i = 0; i < nbLignes; i++) for (int j = 0; j < nbColonnes; j++) lesCases[i, j] = new Case(); // Initialise les joueurs this.joueur1 = joueur1; this.joueur2 = joueur2; etatPlateau = Etat.NonCommence; matchNul = false; }
// Construit une case non occupé public Case() { isOccupe = false; leJoueur = null; }
private void creerNouvellePartie() { // Déclare les joueurs Joueur joueur1 = null; Joueur joueur2 = null; Joueur joueurEnCours = null; //Enabled les bouton pour être pret a jouer button1.Enabled = true; button2.Enabled = true; button3.Enabled = true; button4.Enabled = true; button5.Enabled = true; button6.Enabled = true; button7.Enabled = true; do{ // Crée une boite de dialogue pour demander le nom des joueurs NomJoueurs DiagNom = new NomJoueurs(); // Lance la boite de dialogue if (DiagNom.ShowDialog() == DialogResult.OK) { // Récupère le résultat et crée les joueurs joueur1 = new Joueur(DiagNom.getNomJoueur1(), DiagNom.getCouleurJoueur1(), 1); joueur2 = new Joueur(DiagNom.getNomJoueur2(), DiagNom.getCouleurJoueur2(), 2); if (joueur1.Couleur == joueur2.Couleur) { MessageBox.Show("Vous ne pouvez pas avoir la même couleur(C'est mélangeant!).", "Problème"); } else if (DiagNom.getNomJoueur1().Equals(DiagNom.getNomJoueur2())) { MessageBox.Show("Vous ne pouvez pas avoir le même pseudo.", "Problème"); } else if (DiagNom.getNomJoueur1().Equals("") || DiagNom.getNomJoueur2().Equals("")) { MessageBox.Show("Vous devez remplir vos pseudos !", "Problème"); } else { // Vide le plateau tableLayoutPanel1.Controls.Clear(); // Met à jour le nom des joueurs lblJoueur1.Text = joueur1.getNom(); lblJoueur2.Text = joueur2.getNom(); //Met a Jour les scores label2.Text = "0"; label4.Text = "0"; // Crée la partie unePartie = new Partie(joueur1, joueur2); joueurEnCours = unePartie.tirerAuSortJoueur(); MessageBox.Show(joueurEnCours.getNom() + " commence la partie"); statusStrip1.Items[0].Text = joueurEnCours.getNom() + " à toi de jouer"; // Création des images pour la sélection des joueurs creationPictureBoxSelections(); // Metà jour la fenetre MettreAJourFenetre(); } } else { joueur1 = new Joueur("", Color.Blue, 1); joueur2 = new Joueur("", Color.Yellow, 2); Application.Exit(); break; } } while (joueur1.Couleur == joueur2.Couleur || joueur1.getNom().Equals(joueur2.getNom()) || joueur1.getNom().Equals("") || joueur2.getNom().Equals("")); //} while (joueur1.Couleur == joueur2.Couleur); }
private bool cherche4alignes(int oCol, int oLigne, int dCol, int dLigne) { //Joueur joueurActuel = null; Joueur ancienJoueur = null; Joueur joueurOccupant = null; int compteur = 0; int curCol = oCol; int curRow = oLigne; while ((curCol >= 0) && (curCol < nbColonnes) && (curRow >= 0) && (curRow < nbLignes)) { // Récupère le joueur actuel joueurOccupant = lesCases[curRow, curCol].getJoueurOccupant(); // Si le joueur actuel est "null" if (joueurOccupant == null) { // On réinitialise le compteur compteur = 1; // On met à jour l'ancien joueur ancienJoueur = null; } // Si le joueur occupant n'est pas nul else { // Si l'ancien joueur est différent du joueur occupant if (joueurOccupant != ancienJoueur) { // On réinitialise le compteur compteur = 1; // On met à jour l'ancien joueur ancienJoueur = joueurOccupant; } // Sinon else { // on incrémente compteur++; } } // On sort lorsque le compteur atteint 4 if ((joueurOccupant != null) && (compteur == 4)) { // Le joueur occupant devient le joueur gagnant joueurGagnant = joueurOccupant; return true; } // On passe à l'itération suivante curCol += dCol; curRow += dLigne; } // Aucun alignement n'a été trouvé return false; }
public Point ajouterPion(Joueur unJoueur, int numeroColonne) { int i; Point positionPion; // Si l'état n'est pas en cours if (etatPlateau == Etat.NonCommence) // Met en état en cours etatPlateau = Etat.EnCours; // Vérifie si la colonne n'est pas pleine if (lesCases[nbLignes - 1, numeroColonne - 1].isOccupe) { // La colonne est pleine, on ne fait rien // Retourne null positionPion = new Point(0, 0); return positionPion; } else { // la colonne n'est pas pleine for (i = 0; lesCases[i, numeroColonne - 1].isOccupe; i++) { } // On regarde jusqu'où la colonne est remplie Console.WriteLine("Numero de ligne :{0} ", i); // On ajoute le pion lesCases[i, numeroColonne - 1].occuperCase(unJoueur); } // Retourne la position du pion positionPion = new Point(i + 1, numeroColonne); return positionPion; }