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); }
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); }
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); }