예제 #1
0
 //vérifie si un pion peut se trasformer en dame et dans ce cas le transforme en dame
 public void meta(Pion pion)
 {
     int[] coor = new int[2];
     if (pion.Joueur.color == joueur2.color)
     {
         for (int i = 0; i < 10; i++)
         {
             if (pion.Coor[0] == i && pion.Coor[1] == 0)
             {
                 coor[0]       = i;
                 coor[1]       = 0;
                 tableau[i, 0] = null;
                 tableau[i, 0] = new Dame(joueur2, coor);
             }
         }
     }
     else
     {
         for (int i = 0; i < 10; i++)
         {
             if (pion.Coor[0] == i && pion.Coor[1] == 9)
             {
                 coor[0]       = i;
                 coor[1]       = 9;
                 tableau[i, 9] = null;
                 tableau[i, 9] = new Dame(joueur1, coor);
             }
         }
     }
 }
예제 #2
0
 //bouge le pion par rapport a la case choisie par le joueur et vérifie si il passe par un ennemis en même temps
 public void move(Pion pion, int[] caseJ, Joueur joueur)
 {
     tableau[pion.Coor[0], pion.Coor[1]].reset();
     Console.WriteLine("casej=" + caseJ[0] + "   " + caseJ[1]);
     if (!(tableau[pion.Coor[0], pion.Coor[1]] is Dame))
     {
         if (Math.Abs(pion.Coor[0] - caseJ[0]) == 2 || Math.Abs(pion.Coor[1] - caseJ[1]) == 2)
         {
             Console.WriteLine("je mange");
             int[] coor = new int[2];
             coor[0] = caseJ[0] + ((pion.Coor[0] - caseJ[0]) / 2);
             coor[1] = caseJ[1] + ((pion.Coor[1] - caseJ[1]) / 2);
             tableau[pion.Coor[0], pion.Coor[1]] = null;
             tableau[caseJ[0], caseJ[1]]         = new Pion(joueur, caseJ);
             pion.Coor = caseJ;
             mange(pion, coor, joueur);
         }
         else
         {
             tableau[caseJ[0], caseJ[1]]         = new Pion(joueur, caseJ);
             tableau[pion.Coor[0], pion.Coor[1]] = null;
             meta(tableau[caseJ[0], caseJ[1]]);
         }
     }
     else
     {
         for (int x = 1; x < Math.Abs(pion.Coor[0] - caseJ[0]); x++)
         {
             int abscisse = pion.Coor[0] - ((pion.Coor[0] - caseJ[0]) / Math.Abs(pion.Coor[0] - caseJ[0]) * x);
             int ordonne  = pion.Coor[1] - ((pion.Coor[1] - caseJ[1]) / Math.Abs(pion.Coor[1] - caseJ[1]) * x);
             if (tableau[abscisse, ordonne] != null)
             {
                 Console.WriteLine("je mange");
                 int[] coor = new int[2];
                 coor[0] = abscisse;
                 coor[1] = ordonne;
                 tableau[pion.Coor[0], pion.Coor[1]] = null;
                 tableau[caseJ[0], caseJ[1]]         = new Dame(joueur, caseJ);
                 pion.Coor = caseJ;
                 mange(pion, coor, joueur);
             }
             else
             {
                 tableau[caseJ[0], caseJ[1]]         = new Dame(joueur, caseJ);
                 tableau[pion.Coor[0], pion.Coor[1]] = null;
                 break;
             }
         }
     }
 }
예제 #3
0
        //trouve les déplacements possibles de la dame et rempli sa liste de cases pouvant être atteintes
        public List <int[]> moveDame(Dame pion)
        {
            diagodame = true;
            List <int[]> list = new List <int[]>();

            for (int i = 0; i < 10; i++)
            {
                List <int[]> test = new List <int[]>();
                test = movePion(pion, i);
                foreach (int[] casee in test)
                {
                    list.Add(casee);
                }
            }
            diagodame  = false;
            pion.Cases = list;
            tableau[pion.Coor[0], pion.Coor[1]].Cases = pion.Cases;
            return(pion.Cases);
        }
예제 #4
0
파일: Joueur.cs 프로젝트: Poimulaz/Checkers
        //joue le tour d'un joueur
        public void joue(Plateau plateau)
        {
            plateau.affiche();
            if (this.color)
            {
                Console.WriteLine("C'est au tour de B de jouer");
            }
            else
            {
                Console.WriteLine("C'est au tour de W de jouer");
            }
            int[] coorP = new int[2];
            coorP[0] = 0;
            coorP[1] = 0;
            bool coor = false;

            while (coor == false)
            {
                coorP[0] = Console.Read() - 48;
                Console.ReadLine();
                coorP[1] = Console.Read() - 48;
                Console.ReadLine();
                Console.WriteLine("i=" + coorP[0] + " j=" + coorP[1]);
                if (0 <= coorP[0] && coorP[0] <= 10 && 0 <= coorP[1] && coorP[1] <= 10)
                {
                    if (plateau.tableau[coorP[0], coorP[1]] != null)
                    {
                        if (plateau.tableau[coorP[0], coorP[1]].Joueur == this)
                        {
                            if (plateau.tableau[coorP[0], coorP[1]] is Dame)
                            {
                                List <int[]> mouvements = new List <int[]>();
                                Dame         pion1      = new Dame(this, coorP);
                                mouvements  = plateau.moveDame(pion1);
                                pion1.Cases = mouvements;
                                if (pion1.Cases.Count != 0)
                                {
                                    coor = true;
                                }
                                else
                                {
                                    Console.WriteLine("no move for this pion");
                                }
                            }
                            else
                            {
                                Pion pion1 = new Pion(this, coorP);
                                plateau.movePion(pion1);
                                if (pion1.Cases.Count != 0)
                                {
                                    coor = true;
                                }
                                else
                                {
                                    Console.WriteLine("no move for this pion");
                                }
                            }
                        }
                        else
                        {
                            Console.WriteLine("not YOUR pion");
                        }
                    }
                    else
                    {
                        Console.WriteLine("not a pion");
                    }
                }
                else
                {
                    Console.WriteLine("Not in the grille");
                }
            }
            coor = false;
            Pion pion;

            if (plateau.tableau[coorP[0], coorP[1]] is Dame)
            {
                pion = new Dame(this, coorP);
                Dame pion2 = new Dame(this, coorP);
                plateau.moveDame(pion2);
                pion.Cases = pion2.Cases;
            }
            else
            {
                pion = new Pion(this, coorP);
                plateau.movePion(pion);
            }
            plateau.mouvposs(pion);
            if (this.color)
            {
                Console.WriteLine("C'est au tour de B de jouer");
            }
            else
            {
                Console.WriteLine("C'est au tour de W de jouer");
            }
            Console.WriteLine("Déplacements possibles:");
            foreach (int[] casee in pion.Cases)
            {
                Console.WriteLine("[" + casee[0] + "," + casee[1] + "]");
            }
            Console.WriteLine("choisissez votre déplacement");
            int[] coorJ = new int[2];
            while (coor == false)
            {
                coorJ[0] = Console.Read() - 48;
                Console.ReadLine();
                coorJ[1] = Console.Read() - 48;
                Console.ReadLine();
                foreach (int[] choixposs in pion.Cases)
                {
                    if (coorJ[0] == choixposs[0] && coorJ[1] == choixposs[1])
                    {
                        coor = true;
                    }
                }
                if (coor == false)
                {
                    Console.WriteLine("you can't");
                }
            }

            plateau.move(pion, coorJ, this);
            plateau.affiche();
        }