Beispiel #1
0
 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);
             }
         }
     }
 }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }