Ejemplo n.º 1
0
        private void ReadFiguresPositions()
        {
            for (var i = 0; i < BitBoard.FieldSize; i++)
            {
                for (var j = 0; j < BitBoard.FieldSize; j++)
                {
                    var figure = ChessBoard[i, j];
                    if (figure.Equals(Figure.None))
                    {
                        continue;
                    }

                    if (figure.color == Color.White)
                    {
                        WPositions.Set(i, j);
                        if (figure.piece == Piece.King)
                        {
                            KingPosition = new Cell(i, j); // Белый король
                        }
                    }
                    else
                    {
                        BPositions.Set(i, j);
                    }
                }
            }
        }
Ejemplo n.º 2
0
        private bool MoveInto(int m, int n, BitBoard output)
        // false - дальнейшее движение фигуры в данном направлении невозможно
        {
            if (BitMatrix.CheckBoundaries(m, n) == false)
            {
                return(false);
            }

            switch (ProbeCell(m, n))
            {
            case Obstacle.Friend:
                return(false);

            case Obstacle.Enemy:
                output.Set(m, n);
                return(false);

            case Obstacle.None:
                output.Set(m, n);
                return(true);

            default: throw new Exception("Unknown Obstacle entery");
            }
        }