Esempio n. 1
0
        public override void PossibleMoves(int r, int c, ChessCell[,] matrix, PosMatrix[] vett)
        {
            int j = 0, i = 1;

            while (r + i < 8 && c + i < 8 && matrix[r + i, c + i].GetPiece() == null)
            {
                vett[j] = new PosMatrix(r + i, c + i);
                i++; j++;
            }
            // eat piece
            if (r + i < 8 && c + i < 8 && matrix[r + i, c + i].GetPiece().GetColor() != matrix[r, c].GetPiece().GetColor())
            {
                vett[j] = new PosMatrix(r + i, c + i);
                j++;
            }

            i = 1;
            while (r - i >= 0 && c - i >= 0 && matrix[r - i, c - i].GetPiece() == null)
            {
                vett[j] = new PosMatrix(r - i, c - i);
                i++; j++;
            }
            // eat piece
            if (r - i >= 0 && c - i >= 0 && matrix[r - i, c - i].GetPiece().GetColor() != matrix[r, c].GetPiece().GetColor())
            {
                vett[j] = new PosMatrix(r - i, c - i);
                j++;
            }

            i = 1;
            while (c + i < 8 && r - i >= 0 && matrix[r - i, c + i].GetPiece() == null)
            {
                vett[j] = new PosMatrix(r - i, c + i);
                i++; j++;
            }

            // eat piece
            if (c + i < 8 && r - i >= 0 && matrix[r - i, c + i].GetPiece().GetColor() != matrix[r, c].GetPiece().GetColor())
            {
                vett[j] = new PosMatrix(r - i, c + i);
                j++;
            }

            i = 1;
            while (c - i >= 0 && r + i < 8 && matrix[r + i, c - i].GetPiece() == null)
            {
                vett[j] = new PosMatrix(r + i, c - i);
                i++; j++;
            }
            // eat piece
            if (c - i >= 0 && r + i < 8 && matrix[r + i, c - i].GetPiece().GetColor() != matrix[r, c].GetPiece().GetColor())
            {
                vett[j] = new PosMatrix(r + i, c - i);
                j++;
            }
        }
Esempio n. 2
0
        public override void PossibleMoves(int r, int c, ChessCell[,] matrix, PosMatrix[] vett)
        {
            int j = 0, i = 0, k = 0;

            k = 2;
            i = 1;
            for (int f = 0; f < 2; f++)
            {
                if (r + k < 8)
                {
                    if (c + i < 8)
                    {
                        if (matrix[r + k, c + i].GetPiece() == null || matrix[r + k, c + i].GetPiece() != null && matrix[r + k, c + i].GetPiece().GetColor() != matrix[r, c].GetPiece().GetColor())
                        {
                            vett[j] = new PosMatrix(r + k, c + i);
                            j++;
                        }
                    }

                    if (c - i >= 0)
                    {
                        if (matrix[r + k, c - i].GetPiece() == null || matrix[r + k, c - i].GetPiece() != null && matrix[r + k, c - i].GetPiece().GetColor() != matrix[r, c].GetPiece().GetColor())
                        {
                            vett[j] = new PosMatrix(r + k, c - i);
                            j++;
                        }
                    }
                }

                if (r - k >= 0)
                {
                    if (c + i < 8)
                    {
                        if (matrix[r - k, c + i].GetPiece() == null || matrix[r - k, c + i].GetPiece() != null && matrix[r - k, c + i].GetPiece().GetColor() != matrix[r, c].GetPiece().GetColor())
                        {
                            vett[j] = new PosMatrix(r - k, c + i);
                            j++;
                        }
                    }

                    if (c - i >= 0)
                    {
                        if (matrix[r - k, c - i].GetPiece() == null || matrix[r - k, c - i].GetPiece() != null && matrix[r - k, c - i].GetPiece().GetColor() != matrix[r, c].GetPiece().GetColor())
                        {
                            vett[j] = new PosMatrix(r - k, c - i);
                            j++;
                        }
                    }
                }

                k = 1;
                i = 2;
            }
        }
Esempio n. 3
0
        public override void PossibleMoves(int r, int c, ChessCell[,] matrix, PosMatrix[] vett)
        {
            int j = 0, i = 1, k = 0;

            int[] v = { 1, 0, -1 };

            for (int f = 0; f < 3; f++)
            {
                k = v[f];

                if (r + k < 8 && r + k >= 0)
                {
                    if (k != 0)
                    {
                        if (matrix[r + k, c].GetPiece() == null || matrix[r + k, c].GetPiece() != null && matrix[r + k, c].GetPiece().GetColor() != matrix[r, c].GetPiece().GetColor())
                        {
                            vett[j] = new PosMatrix(r + k, c);
                            j++;
                        }
                    }

                    if (c - i >= 0 && c - i < 8)
                    {
                        if (matrix[r + k, c - i].GetPiece() == null || matrix[r + k, c - i].GetPiece() != null && matrix[r + k, c - i].GetPiece().GetColor() != matrix[r, c].GetPiece().GetColor())
                        {
                            vett[j] = new PosMatrix(r + k, c - i);
                            j++;
                        }
                    }

                    if (c + i < 8 && c + i >= 0)
                    {
                        if (matrix[r + k, c + i].GetPiece() == null || matrix[r + k, c + i].GetPiece() != null && matrix[r + k, c + i].GetPiece().GetColor() != matrix[r, c].GetPiece().GetColor())
                        {
                            vett[j] = new PosMatrix(r + k, c + i);
                            j++;
                        }
                    }
                }
            }
        }
Esempio n. 4
0
        public override void PossibleMoves(int r, int c, ChessCell[,] matrix, PosMatrix[] vett)
        {
            int j = 0, i = 1;

            /*if (matrix[r, c].GetPiece().GetColor() == true)
             * {
             *  i = -1;
             *  f = -2;
             * }*/
            if (r + i < 8 && r + i >= 0)
            {
                if (matrix[r + i, c].GetPiece() == null)
                {
                    vett[j] = new PosMatrix(r + i, c);
                    j++;

                    /*if (matrix[r, c].GetFirstMove() && matrix[r + 2, c].GetPiece() == null) // at the first move, a pawn can move 2 cells
                     * {
                     *  vett[j] = new PosMatrix(r + 1, c);
                     *  j++;
                     * }*/
                }

                // eat pieces in oblique
                if (c - i >= 0 && c - i < 8 && matrix[r + i, c - i].GetPiece() != null && matrix[r + i, c - i].GetPiece().GetColor() != matrix[r, c].GetPiece().GetColor())
                {
                    vett[j] = new PosMatrix(r + i, c - i);
                    j++;
                }

                // eat pieces in oblique
                if (c + i >= 0 && c + i < 8 && matrix[r + i, c + i].GetPiece() != null && matrix[r + i, c + i].GetPiece().GetColor() != matrix[r, c].GetPiece().GetColor())
                {
                    vett[j] = new PosMatrix(r + i, c + i);
                    j++;
                }
            }
        }
Esempio n. 5
0
 public virtual void PossibleMoves(int r, int c, ChessCell[,] matrix, PosMatrix[] vett)
 {
     vett[0] = new PosMatrix(-1, -1);
 }
Esempio n. 6
0
 public Letter()
 {
     lunParola = -1;
     letter    = '\0';
     pos       = null;
 }
Esempio n. 7
0
 public void SetPosMatrix(PosMatrix p)
 {
     pos = p;
 }
Esempio n. 8
0
 public Letter(PosMatrix p, int l)
 {
     lunParola = l;
     pos       = p;
 }