示例#1
0
 public Case(Echiquier echiquier, int x, int y, CouleurCamp couleur)
 {
     this.echiquier = echiquier;
     this.x         = x;
     this.y         = y;
     this.couleur   = couleur;
 }
示例#2
0
        // TODO : décommentez lorsque vous auriez implementé les methode Unlink et Link de la classe Case
        public void PlacerPieces(Echiquier echiquier)
        {
            if (couleur == CouleurCamp.Blanche)
            {
                for (int i = LAST_PIECE - NB_PIECE_ROW; i < LAST_PIECE; i++)
                {
                    int index = i - (LAST_PIECE - NB_PIECE_ROW);

                    pieces[index].position = echiquier.Cases[i];
                    echiquier.Cases[i].Link(pieces[index]);
                }

                for (int i = LAST_PIECE - NB_MAX_PIECE; i < LAST_PIECE - NB_PIECE_ROW; i++)
                {
                    int index = i - (LAST_PIECE - NB_MAX_PIECE);

                    pieces[index + 8].position = echiquier.Cases[i];
                    echiquier.Cases[i].Link(pieces[index + 8]);
                }
            }
            else
            {
                for (int i = 0; i < NB_MAX_PIECE; i++)
                {
                    pieces[i].position = echiquier.Cases[i];
                    echiquier.Cases[i].Link(pieces[i]);
                }
            }
        }
示例#3
0
        /* methodes */
        public void CommencerPartie()
        {
            // creation des joueurs
            blancs = new Joueur(this, CouleurCamp.Blanche);
            noirs  = new Joueur(this, CouleurCamp.Noire);

            // creation de l'echiquier
            echiquier = new Echiquier(this);

            //piecesCapturees
            piecesCapturees = new List <InfoPiece>();

            // placement des pieces
            blancs.PlacerPieces(echiquier);
            foreach (Piece piece in blancs.pieces)
            {
                vue.ActualiserCase(piece.position.row, piece.position.col, piece.info);
            }

            noirs.PlacerPieces(echiquier);
            foreach (Piece piece in noirs.pieces)
            {
                vue.ActualiserCase(piece.position.row, piece.position.col, piece.info);
            }


            // initialisation de l'état
            status = StatusPartie.TraitBlancs;
        }
示例#4
0
 // methodes
 public Case(CouleurCamp couleur, int r, int c, Echiquier echiquier)
 {
     this.couleurCase = couleur;
     this.row         = r;
     this.col         = c;
     this.piece       = null;
     this.echiquier   = echiquier;
 }
示例#5
0
        // TODO : décommentez lorsque vous auriez implementé les methode Unlink et Link de la classe Case
        public void PlacerPieces(Echiquier echiquier)
        {
            if (couleur == CouleurCamp.Noire)
            {
                //Roi
                echiquier.cases[4, 0].Link(pieces[0]);

                //Dame
                echiquier.cases[3, 0].Link(pieces[1]);

                // Tours
                echiquier.cases[0, 0].Link(pieces[2]);
                echiquier.cases[7, 0].Link(pieces[3]);

                // Fous
                echiquier.cases[2, 0].Link(pieces[4]);
                echiquier.cases[5, 0].Link(pieces[5]);

                // Chevalier
                echiquier.cases[1, 0].Link(pieces[6]);
                echiquier.cases[6, 0].Link(pieces[7]);

                // Pions
                for (int i = 0; i < 8; i++)
                {
                    echiquier.cases[i, 1].Link(pieces[i + 8]);
                }
            }
            else
            {
                //Roi
                echiquier.cases[4, 7].Link(pieces[0]);

                //Dame
                echiquier.cases[3, 7].Link(pieces[1]);

                // Tours
                echiquier.cases[0, 7].Link(pieces[2]);
                echiquier.cases[7, 7].Link(pieces[3]);

                // Fous
                echiquier.cases[2, 7].Link(pieces[4]);
                echiquier.cases[5, 7].Link(pieces[5]);

                // Chevalier
                echiquier.cases[1, 7].Link(pieces[6]);
                echiquier.cases[6, 7].Link(pieces[7]);

                // Pions
                for (int i = 0; i < 8; i++)
                {
                    echiquier.cases[i, 6].Link(pieces[i + 8]);
                }
            }
        }
示例#6
0
        }                                         // TODO : décommentez lorsque vous auriez implementé la classe Echiquier


        /* methodes */

        public void CommencerPartie()
        {
            // creation des joueurs
            blancs = new Joueur(this, CouleurCamp.Blanche);
            noirs  = new Joueur(this, CouleurCamp.Noire);

            // creation de l'echiquier
            echiquier = new Echiquier(this);

            // placement des pieces
            blancs.PlacerPieces(echiquier);
            noirs.PlacerPieces(echiquier);

            // initialisation de l'état
            status = StatusPartie.TraitBlancs;
        }
示例#7
0
        /* methodes */

        public void CommencerPartie()
        {
            // initialisation des coups
            coups = new List <Coup>();

            // creation des joueurs
            blancs = new Joueur(this, CouleurCamp.Blanche);
            noirs  = new Joueur(this, CouleurCamp.Noire);

            // creation de l'echiquier
            echiquier = new Echiquier(this);

            // placement des pieces
            blancs.PlacerPieces(echiquier); // TODO : décommentez lorsque vous auriez implementé les methode Unlink et Link de la classe Case
            noirs.PlacerPieces(echiquier);  // TODO : décommentez lorsque vous auriez implementé les methode Unlink et Link de la classe Case

            // initialisation de l'état
            status = StatusPartie.TraitBlancs;
        }
示例#8
0
        // TODO : décommentez lorsque vous auriez implementé les methode Unlink et Link de la classe Case
        public void PlacerPieces(Echiquier echiquier)
        {
            int rangee = (couleur == CouleurCamp.Noire) ? -1 : 8;

            for (int i = 0; i < pieces.Count; i++)
            {
                int colonne = i % 8;

                if (couleur == CouleurCamp.Noire)
                {
                    rangee = (colonne == 0) ? ++rangee : rangee;
                }
                else
                {
                    rangee = (colonne == 0) ? --rangee : rangee;
                }

                echiquier.cases[colonne, rangee].Link(pieces[i]);
            }
        }
示例#9
0
 public void PlacerPieces(Echiquier echiquier)
 {
     if (couleur == CouleurCamp.Noire)
     {
         echiquier.cases[3, 0].Link(pieces[0]);
         echiquier.cases[4, 0].Link(pieces[1]);
         echiquier.cases[0, 0].Link(pieces[2]);
         echiquier.cases[7, 0].Link(pieces[3]);
         echiquier.cases[0, 1].Link(pieces[4]);
         echiquier.cases[1, 1].Link(pieces[5]);
         echiquier.cases[2, 1].Link(pieces[6]);
         echiquier.cases[3, 1].Link(pieces[7]);
         echiquier.cases[4, 1].Link(pieces[8]);
         echiquier.cases[5, 1].Link(pieces[9]);
         echiquier.cases[6, 1].Link(pieces[10]);
         echiquier.cases[7, 1].Link(pieces[11]);
         echiquier.cases[2, 0].Link(pieces[12]);
         echiquier.cases[5, 0].Link(pieces[13]);
         echiquier.cases[1, 0].Link(pieces[14]);
         echiquier.cases[6, 0].Link(pieces[15]);
     }
     else
     {
         echiquier.cases[3, 7].Link(pieces[0]);
         echiquier.cases[4, 7].Link(pieces[1]);
         echiquier.cases[0, 7].Link(pieces[2]);
         echiquier.cases[7, 7].Link(pieces[3]);
         echiquier.cases[0, 6].Link(pieces[4]);
         echiquier.cases[1, 6].Link(pieces[5]);
         echiquier.cases[2, 6].Link(pieces[6]);
         echiquier.cases[3, 6].Link(pieces[7]);
         echiquier.cases[4, 6].Link(pieces[8]);
         echiquier.cases[5, 6].Link(pieces[9]);
         echiquier.cases[6, 6].Link(pieces[10]);
         echiquier.cases[7, 6].Link(pieces[11]);
         echiquier.cases[2, 7].Link(pieces[12]);
         echiquier.cases[5, 7].Link(pieces[13]);
         echiquier.cases[1, 7].Link(pieces[14]);
         echiquier.cases[6, 7].Link(pieces[15]);
     }
 }
示例#10
0
        /* methodes */

        public void CommencerPartie()
        {
            // creation des joueurs
            blancs = new Joueur(this, CouleurCamp.Blanche);
            noirs  = new Joueur(this, CouleurCamp.Noire);

            // creation de l'echiquier
            echiquier = new Echiquier(this);

            // placement des pieces
            blancs.PlacerPieces(echiquier);
            noirs.PlacerPieces(echiquier);

            /* TEST */
            // vue.ActualiserCase(4, 0, InfoPiece.RoiNoir);
            //vue.ActualiserCase(4, 7, InfoPiece.RoiBlanc);
            /* FIN TEST */

            // initialisation de l'état
            status = StatusPartie.TraitBlancs;
        }
示例#11
0
        /* methodes */

        public void CommencerPartie()
        {
            // creation des joueurs
            blancs = new Joueur(this, CouleurCamp.Blanche);
            noirs  = new Joueur(this, CouleurCamp.Noire);

            // creation de l'echiquier
            echiquier       = new Echiquier(this);
            piecesCapturees = new List <InfoPiece>();
            this.vue.ActualiserCaptures(piecesCapturees);

            // placement des pieces
            blancs.PlacerPieces(echiquier); // TODO : décommentez lorsque vous auriez implementé les methode Unlink et Link de la classe Case
            noirs.PlacerPieces(echiquier);  // TODO : décommentez lorsque vous auriez implementé les methode Unlink et Link de la classe Case

            // initialisation de l'état
            status = StatusPartie.TraitBlancs;

            // initialisation du tableau des cases attaquables

            //Autres
            //this.vue.ActualiserListMove(new string[] { "test", "test", "test" });
            this.vue.ActualiserListMove(null);
        }
示例#12
0
        // TODO : décommentez lorsque vous auriez implementé les methode Unlink et Link de la classe Case
        public void PlacerPieces(Echiquier echiquier)
        {
            int nbTour = 0, nbCavalier = 0, nbFou = 0, nbPion = 0;

            foreach (Piece piece in pieces)
            {
                switch (piece.info.type)
                {
                case TypePiece.Roi:
                    if (couleur == CouleurCamp.Blanche)
                    {
                        echiquier.cases[7, 4].Link(piece);
                    }
                    else
                    {
                        echiquier.cases[0, 4].Link(piece);
                    }
                    roi = (Roi)piece;
                    break;

                case TypePiece.Dame:
                    if (couleur == CouleurCamp.Blanche)
                    {
                        echiquier.cases[7, 3].Link(piece);
                    }
                    else
                    {
                        echiquier.cases[0, 3].Link(piece);
                    }
                    break;

                case TypePiece.Tour:
                    if (couleur == CouleurCamp.Blanche)
                    {
                        echiquier.cases[7, (nbTour * 7)].Link(piece); nbTour++;
                    }
                    else
                    {
                        echiquier.cases[0, (nbTour * 7)].Link(piece); nbTour++;
                    }
                    break;

                case TypePiece.Cavalier:
                    if (couleur == CouleurCamp.Blanche)
                    {
                        echiquier.cases[7, ((nbCavalier * 5) + 1)].Link(piece); nbCavalier++;
                    }
                    else
                    {
                        echiquier.cases[0, ((nbCavalier * 5) + 1)].Link(piece); nbCavalier++;
                    }
                    break;

                case TypePiece.Fou:
                    if (couleur == CouleurCamp.Blanche)
                    {
                        echiquier.cases[7, ((nbFou * 3) + 2)].Link(piece); nbFou++;
                    }
                    else
                    {
                        echiquier.cases[0, ((nbFou * 3) + 2)].Link(piece); nbFou++;
                    }
                    break;

                case TypePiece.Pion:
                    if (couleur == CouleurCamp.Blanche)
                    {
                        echiquier.cases[6, nbPion].Link(piece); nbPion++;
                    }
                    else
                    {
                        echiquier.cases[1, nbPion].Link(piece); nbPion++;
                    }
                    break;

                default: break;
                }
            }
        }