Пример #1
0
        public override bool[,] PossibleMovements()
        {
            bool[,] chessmanPossibleMoves = new bool[Board.Rows, Board.Columns];

            Position movementPosition = new Position(0, 0);

            movementPosition.SetValues(PiecePosition.Row - 1, PiecePosition.Column - 2);
            if (Board.ValidatePosition(movementPosition) && CanMove(movementPosition))
            {
                chessmanPossibleMoves[movementPosition.Row, movementPosition.Column] = true;
            }

            movementPosition.SetValues(PiecePosition.Row - 2, PiecePosition.Column - 1);
            if (Board.ValidatePosition(movementPosition) && CanMove(movementPosition))
            {
                chessmanPossibleMoves[movementPosition.Row, movementPosition.Column] = true;
            }

            movementPosition.SetValues(PiecePosition.Row - 2, PiecePosition.Column + 1);
            if (Board.ValidatePosition(movementPosition) && CanMove(movementPosition))
            {
                chessmanPossibleMoves[movementPosition.Row, movementPosition.Column] = true;
            }

            movementPosition.SetValues(PiecePosition.Row - 1, PiecePosition.Column + 2);
            if (Board.ValidatePosition(movementPosition) && CanMove(movementPosition))
            {
                chessmanPossibleMoves[movementPosition.Row, movementPosition.Column] = true;
            }

            movementPosition.SetValues(PiecePosition.Row + 1, PiecePosition.Column + 2);
            if (Board.ValidatePosition(movementPosition) && CanMove(movementPosition))
            {
                chessmanPossibleMoves[movementPosition.Row, movementPosition.Column] = true;
            }

            movementPosition.SetValues(PiecePosition.Row + 2, PiecePosition.Column + 1);
            if (Board.ValidatePosition(movementPosition) && CanMove(movementPosition))
            {
                chessmanPossibleMoves[movementPosition.Row, movementPosition.Column] = true;
            }

            movementPosition.SetValues(PiecePosition.Row + 2, PiecePosition.Column - 1);
            if (Board.ValidatePosition(movementPosition) && CanMove(movementPosition))
            {
                chessmanPossibleMoves[movementPosition.Row, movementPosition.Column] = true;
            }

            movementPosition.SetValues(PiecePosition.Row + 1, PiecePosition.Column - 2);
            if (Board.ValidatePosition(movementPosition) && CanMove(movementPosition))
            {
                chessmanPossibleMoves[movementPosition.Row, movementPosition.Column] = true;
            }

            return(chessmanPossibleMoves);
        }
Пример #2
0
        public override bool[,] PossibleMovements()
        {
            bool[,] chessmanPossibleMoves = new bool[Board.Rows, Board.Columns];

            Position movementPosition = new Position(0, 0);

            if (PieceColor == Color.White)
            {
                movementPosition.SetValues(PiecePosition.Row - 1, PiecePosition.Column);
                if (Board.ValidatePosition(movementPosition) && Empty(movementPosition))
                {
                    chessmanPossibleMoves[movementPosition.Row, movementPosition.Column] = true;
                }
                movementPosition.SetValues(PiecePosition.Row - 2, PiecePosition.Column);
                if (Board.ValidatePosition(movementPosition) && Empty(movementPosition) && PieceMoves == 0)
                {
                    chessmanPossibleMoves[movementPosition.Row, movementPosition.Column] = true;
                }
                movementPosition.SetValues(PiecePosition.Row - 1, PiecePosition.Column - 1);
                if (Board.ValidatePosition(movementPosition) && ExistEnemy(movementPosition))
                {
                    chessmanPossibleMoves[movementPosition.Row, movementPosition.Column] = true;
                }
                movementPosition.SetValues(PiecePosition.Row - 1, PiecePosition.Column + 1);
                if (Board.ValidatePosition(movementPosition) && ExistEnemy(movementPosition))
                {
                    chessmanPossibleMoves[movementPosition.Row, movementPosition.Column] = true;
                }
            }
            else
            {
                movementPosition.SetValues(PiecePosition.Row + 1, PiecePosition.Column);
                if (Board.ValidatePosition(movementPosition) && Empty(movementPosition))
                {
                    chessmanPossibleMoves[movementPosition.Row, movementPosition.Column] = true;
                }
                movementPosition.SetValues(PiecePosition.Row + 2, PiecePosition.Column);
                if (Board.ValidatePosition(movementPosition) && Empty(movementPosition) && PieceMoves == 0)
                {
                    chessmanPossibleMoves[movementPosition.Row, movementPosition.Column] = true;
                }
                movementPosition.SetValues(PiecePosition.Row + 1, PiecePosition.Column + 1);
                if (Board.ValidatePosition(movementPosition) && ExistEnemy(movementPosition))
                {
                    chessmanPossibleMoves[movementPosition.Row, movementPosition.Column] = true;
                }
                movementPosition.SetValues(PiecePosition.Row + 1, PiecePosition.Column - 1);
                if (Board.ValidatePosition(movementPosition) && ExistEnemy(movementPosition))
                {
                    chessmanPossibleMoves[movementPosition.Row, movementPosition.Column] = true;
                }
            }

            return(chessmanPossibleMoves);
        }
Пример #3
0
        public override bool[,] PossibleMovements()
        {
            bool[,] chessmanPossibleMoves = new bool[Board.Rows, Board.Columns];

            Position movementPosition = new Position(0, 0);

            movementPosition.SetValues(PiecePosition.Row - 1, PiecePosition.Column - 1);
            while (Board.ValidatePosition(movementPosition) && CanMove(movementPosition))
            {
                chessmanPossibleMoves[movementPosition.Row, movementPosition.Column] = true;
                if (Board.ChessPiece(movementPosition) != null && Board.ChessPiece(movementPosition).PieceColor != PieceColor)
                {
                    break;
                }
                movementPosition.SetValues(PiecePosition.Row - 1, PiecePosition.Column - 1);
            }

            movementPosition.SetValues(PiecePosition.Row - 1, PiecePosition.Column + 1);
            while (Board.ValidatePosition(movementPosition) && CanMove(movementPosition))
            {
                chessmanPossibleMoves[movementPosition.Row, movementPosition.Column] = true;
                if (Board.ChessPiece(movementPosition) != null && Board.ChessPiece(movementPosition).PieceColor != PieceColor)
                {
                    break;
                }
                movementPosition.SetValues(PiecePosition.Row - 1, PiecePosition.Column + 1);
            }

            movementPosition.SetValues(PiecePosition.Row + 1, PiecePosition.Column + 1);
            while (Board.ValidatePosition(movementPosition) && CanMove(movementPosition))
            {
                chessmanPossibleMoves[movementPosition.Row, movementPosition.Column] = true;
                if (Board.ChessPiece(movementPosition) != null && Board.ChessPiece(movementPosition).PieceColor != PieceColor)
                {
                    break;
                }
                movementPosition.SetValues(PiecePosition.Row + 1, PiecePosition.Column + 1);
            }

            movementPosition.SetValues(PiecePosition.Row + 1, PiecePosition.Column - 1);
            while (Board.ValidatePosition(movementPosition) && CanMove(movementPosition))
            {
                chessmanPossibleMoves[movementPosition.Row, movementPosition.Column] = true;
                if (Board.ChessPiece(movementPosition) != null && Board.ChessPiece(movementPosition).PieceColor != PieceColor)
                {
                    break;
                }
                movementPosition.SetValues(PiecePosition.Row + 1, PiecePosition.Column - 1);
            }

            return(chessmanPossibleMoves);
        }