public void SquaresWithPieces() { for (int i = 0; i < Board.GetBoardSize(); i++) { for (int j = 0; j < Board.GetBoardSize(); j++) { if (Board.GetBoardSpace(i, j).HasPiece()) { Console.WriteLine(i + " " + j); } } } }
private bool moveRook(int currentRank, int currentFile, int newRank, int newFile) { //negative X bool pieceDetected = false; for (int i = -1; currentRank + i >= 0 && currentFile == newFile && Board.ValidateSpace(currentRank + i, currentFile) && !Board.GetBoardSpace(currentRank + i, currentFile).HasPiece() && !pieceDetected; --i) { if (Board.GetBoardSpace(currentRank + i, currentFile).HasPiece()) { pieceDetected = true; if (Board.GetBoardSpace(currentRank + i, currentFile).GetPiece().GetColor() != this.GetColor()) { return(true); } break; } else { if (currentRank + i == newRank && currentFile == newFile) { return(true); } } } pieceDetected = false; //positive X for (int i = 1; currentRank + i < Board.GetBoardSize() && currentFile == newFile && Board.ValidateSpace(currentRank + i, currentFile) && !Board.GetBoardSpace(currentRank + i, currentFile).HasPiece() && !pieceDetected; ++i) { if (Board.GetBoardSpace(currentRank + i, currentFile).HasPiece()) { pieceDetected = true; if (Board.GetBoardSpace(currentRank + i, currentFile).GetPiece().GetColor() != this.GetColor()) { return(true); } break; } else { if (currentRank + i == newRank && currentFile == newFile) { return(true); } } } pieceDetected = false; //negative Y for (int i = -1; currentFile + i >= 0 && currentRank == newRank && Board.ValidateSpace(currentRank, currentFile + i) && !Board.GetBoardSpace(currentRank, currentFile + i).HasPiece() && !pieceDetected; --i) { if (Board.GetBoardSpace(currentRank, currentFile + i).HasPiece()) { pieceDetected = true; if (Board.GetBoardSpace(currentRank, currentFile + i).GetPiece().GetColor() != this.GetColor()) { return(true); } break; } else { if (currentRank == newRank && currentFile + i == newFile) { return(true); } } } pieceDetected = false; //positive Y for (int i = 1; currentFile + i < Board.GetBoardSize() && currentRank == newRank && Board.ValidateSpace(currentRank, currentFile + i) && !Board.GetBoardSpace(currentRank, currentFile + i).HasPiece() && !pieceDetected; ++i) { if (Board.GetBoardSpace(currentRank, currentFile + i).HasPiece()) { pieceDetected = true; if (Board.GetBoardSpace(currentRank, currentFile + i).GetPiece().GetColor() != this.GetColor()) { return(true); } break; } else { if (currentRank == newRank && currentFile + i == newFile) { return(true); } } } return(false); }
private bool moveBishop(int currentRank, int currentFile, int newRank, int newFile) { //Negative X Negative Y bool pieceDetected = false; for (int i = -1; currentRank + i > 0 && currentFile + i > 0 && Board.ValidateSpace(currentRank + i, currentFile + i) && !pieceDetected; --i) { if (Board.GetBoardSpace(currentRank + i, currentFile + i).HasPiece()) { pieceDetected = true; if (Board.GetBoardSpace(currentRank + i, currentFile + i).GetPiece().GetColor() != this.GetColor()) { return(true); } break; } else { if (currentRank + i == newRank && currentFile + i == newFile) { return(true); } } } //Positive X Positive Y pieceDetected = false; for (int i = 1; currentRank + i < Board.GetBoardSize() && currentFile + i < Board.GetBoardSize() && Board.ValidateSpace(currentRank + i, currentFile + i) && !pieceDetected; ++i) { if (Board.GetBoardSpace(currentRank + i, currentFile + i).HasPiece()) { pieceDetected = true; if (Board.GetBoardSpace(currentRank + i, currentFile + i).GetPiece().GetColor() != this.GetColor()) { return(true); } break; } else { if (currentRank + i == newRank && currentFile + i == newFile) { return(true); } } } //Negative Y Positive X pieceDetected = false; for (int i = -1; currentRank + i < Board.GetBoardSize() && currentFile - i > 0 && Board.ValidateSpace(currentRank - i, currentFile + i) && !pieceDetected; --i) { if (Board.GetBoardSpace(currentRank - i, currentFile + i).HasPiece()) { pieceDetected = true; if (Board.GetBoardSpace(currentRank - i, currentFile + i).GetPiece().GetColor() != this.GetColor()) { return(true); } break; } else { if (currentRank - i == newRank && currentFile + i == newFile) { return(true); } } } //Positive Y Negative X pieceDetected = false; for (int i = 1; currentRank - i > 0 && currentFile + i < Board.GetBoardSize() && Board.ValidateSpace(currentRank - i, currentFile + i) && !pieceDetected; ++i) { if (Board.GetBoardSpace(currentRank - i, currentFile + i).HasPiece()) { pieceDetected = true; if (Board.GetBoardSpace(currentRank - i, currentFile + i).GetPiece().GetColor() != this.GetColor()) { return(true); } break; } else { if (currentRank - i == newRank && currentFile + i == newFile) { return(true); } } } return(false); }