public void cannotJumpOppositionDiagUpLeft() { Board b = TestBoard.createBoard(); b.Place <Bishop>(Piece.PlayerColour.White, 4, 3); b.Place <Pawn>(Piece.PlayerColour.Black, 3, 2); b.Select(4, 3); b.Move(2, 1); }
public void cannotJumpOppositionDiagDownRight() { Board b = TestBoard.createBoard(); b.Place <Bishop>(Piece.PlayerColour.White, 4, 3); b.Place <Pawn>(Piece.PlayerColour.Black, 5, 4); b.Select(4, 3); b.Move(6, 5); }
public void cannotTakeOwnPieceDiagUpLeft() { Board b = TestBoard.createBoard(); b.Place <Bishop>(Piece.PlayerColour.White, 4, 3); b.Place <Pawn>(Piece.PlayerColour.White, 3, 2); b.Select(4, 3); b.Move(3, 2); }
public void cannotMoveIntoCheck() { Board b = TestBoard.createBoard(); b.Place <King>(Piece.PlayerColour.White, 7, 3); b.Place <Rook>(Piece.PlayerColour.Black, 6, 1); b.Select(7, 3); b.Move(6, 3); }
public void canTakePiece() { Board b = TestBoard.createBoard(); b.Place <Bishop>(Piece.PlayerColour.White, 4, 3); b.Place <Pawn>(Piece.PlayerColour.Black, 3, 4); b.Select(4, 3); b.Move(3, 4); }
public void canTakeOppositionPieceMovingUpRight() { Board b = TestBoard.createBoard(); b.Place <King>(Piece.PlayerColour.White, 4, 3); b.Place <Pawn>(Piece.PlayerColour.Black, 3, 4); b.Select(4, 3); b.Move(3, 4); }
public void blackCanCastle() { Board b = TestBoard.createBoard(); b.Place <King>(Piece.PlayerColour.Black, 0, 4); b.Place <Rook>(Piece.PlayerColour.Black, 0, 7); b.Select(0, 4); b.Move(0, 6); }
public void cannotTakeOwnPieceMovingDown() { Board b = TestBoard.createBoard(); b.Place <King>(Piece.PlayerColour.White, 4, 3); b.Place <Pawn>(Piece.PlayerColour.White, 5, 3); b.Select(4, 3); b.Move(5, 3); }
public void cannotTakeOwnPieceDiagDownRight() { Board b = TestBoard.createBoard(); b.Place <Bishop>(Piece.PlayerColour.White, 4, 3); b.Place <Pawn>(Piece.PlayerColour.White, 5, 4); b.Select(4, 3); b.Move(5, 4); }
public void cannotMoveKingIntoCheckWithPawn() { Board b = TestBoard.createBoard(); b.Place <King>(Piece.PlayerColour.White, 7, 4); b.Place <Pawn>(Piece.PlayerColour.Black, 5, 6); b.Select(7, 4); b.Move(6, 5); }
public void whiteCanCastle() { Board b = TestBoard.createBoard(); b.Place <King>(Piece.PlayerColour.White, 7, 4); b.Place <Rook>(Piece.PlayerColour.White, 7, 7); b.Select(7, 4); b.Move(7, 6); }
public void cannotTakeOwnPieceMovingForwardLeft() { Board b = TestBoard.createBoard(); b.Place <King>(Piece.PlayerColour.White, 4, 3); b.Place <Pawn>(Piece.PlayerColour.White, 3, 2); b.Select(4, 3); b.Move(3, 2); }
public void cannotMoveSidewaysWhenInCheck() { Board b = TestBoard.createBoard(); b.Place <King>(Piece.PlayerColour.White, 7, 3); b.Place <Rook>(Piece.PlayerColour.Black, 7, 0); b.Select(7, 3); b.Move(7, 4); }
public void whitePawnAutomaticallyPromotedToQueenWhenMovedToTopRow() { Board b = TestBoard.createBoard(); b.Place <Pawn>(Piece.PlayerColour.White, 1, 2); b.GetFirstPiece <Pawn>(Piece.PlayerColour.White).AtStartPosition = false; b.Select(1, 2); b.Move(0, 2); Assert.IsInstanceOfType(b[0, 2].Piece, typeof(Queen)); }
public void canGetPawnGetPossibleMovesOnTopRow() { Board b = TestBoard.createBoard(); b.Place <Pawn>(Piece.PlayerColour.White, 0, 4); Pawn p = b.GetFirstPiece <Pawn>(Piece.PlayerColour.White); p.AtStartPosition = false; p.GetPossibleMoves(); }
public void cannotCastleWithPieceInTheWay() { Board b = TestBoard.createBoard(); b.Place <King>(Piece.PlayerColour.White, 7, 4); b.Place <Rook>(Piece.PlayerColour.White, 7, 7); b.Place <Bishop>(Piece.PlayerColour.White, 7, 5); b.Select(7, 4); b.Move(7, 6); }
public void blackPawnAutomaticallyPromotedToQuenWhenMoveToBottomRow() { Board b = TestBoard.createBoard(); b.Place <Pawn>(Piece.PlayerColour.Black, 6, 2); b.GetFirstPiece <Pawn>(Piece.PlayerColour.Black).AtStartPosition = false; b.Select(6, 2); b.Move(7, 2); Assert.IsInstanceOfType(b[7, 2].Piece, typeof(Queen)); }
public void canMoveBlackBishopDiagonallyDownRightNoObstructions() { for (int row = 3, col = 2; row >= 0 && col >= 0; row--, col--) { Board b = TestBoard.createBoard(); b.Place <Bishop>(Piece.PlayerColour.Black, 4, 3); b.Select(4, 3); b.Move(row, col); } }
public void canMoveWhiteBishopDiagonallyDownRightNoObstructions() { for (int row = 5, col = 4; row < Board.NumOfRows && col < Board.NumOfCols; row++, col++) { Board b = TestBoard.createBoard(); b.Place <Bishop>(Piece.PlayerColour.White, 4, 3); b.Select(4, 3); b.Move(row, col); } }
public void canMoveBlackBishopDiagonallyDownLeftNoObstructions() { for (int row = 3, col = 4; row >= 0 && col < Board.NumOfCols; row--, col++) { Board b = TestBoard.createBoard(); b.Place <Bishop>(Piece.PlayerColour.Black, 4, 3); b.Select(4, 3); b.Move(row, col); } }
public void canMoveBlackBishipDiagonalUpRightNoObstructions() { for (int row = 5, col = 2; row < Board.NumOfRows && col >= 0; row++, col--) { Board b = TestBoard.createBoard(); b.Place <Bishop>(Piece.PlayerColour.Black, 4, 3); b.Select(4, 3); b.Move(row, col); } }
public void cannotCastleOntoAPiece() { Board b = TestBoard.createBoard(); b.Place <King>(Piece.PlayerColour.White, 7, 4); b.Place <Rook>(Piece.PlayerColour.White, 7, 7); b.Place <Knight>(Piece.PlayerColour.White, 7, 6); b.Select(7, 4); b.Move(7, 6); }
public void colourNotInStalemateWhenNoPossibleMovesAndInCheck() { Board b = TestBoard.createBoard(); b.Place <King>(Piece.PlayerColour.White, 7, 7); b.Place <Queen>(Piece.PlayerColour.Black, 0, 6); b.Place <Rook>(Piece.PlayerColour.Black, 6, 0); b.Place <Rook>(Piece.PlayerColour.Black, 7, 0); Assert.IsFalse(b.InStalemate(Piece.PlayerColour.White)); }
public void kingInCheckWhenPieceCanTakeIt() { Board b = TestBoard.createBoard(); b.Place <King>(Piece.PlayerColour.White, 4, 3); b.Place <Queen>(Piece.PlayerColour.Black, 2, 3); King k = b[4, 3].Piece as King; Assert.IsTrue(k.InCheck); }
public void canMoveQueenDiagDownLeft() { for (int row = 5, col = 2; row < Board.NumOfRows && col >= 0; row++, col--) { Board b = TestBoard.createBoard(); b.Place <Queen>(Piece.PlayerColour.White, 4, 3); b.Select(4, 3); b.Move(row, col); } }
public void canMoveQueenDiagUpRight() { for (int row = 3, col = 4; row >= 0 && col < Board.NumOfCols; row--, col++) { Board b = TestBoard.createBoard(); b.Place <Queen>(Piece.PlayerColour.White, 4, 3); b.Select(4, 3); b.Move(row, col); } }
public void canMoveQueenDiagUpLeft() { for (int row = 3, col = 2; row >= 0 && col >= 0; row--, col--) { Board b = TestBoard.createBoard(); b.Place <Queen>(Piece.PlayerColour.White, 4, 3); b.Select(4, 3); b.Move(row, col); } }
public void kingNotInCheckWhenOwnPieceBlockingOppositionPiece() { Board b = TestBoard.createBoard(); b.Place <King>(Piece.PlayerColour.White, 4, 3); b.Place <Queen>(Piece.PlayerColour.Black, 2, 3); b.Place <Pawn>(Piece.PlayerColour.White, 3, 3); King k = b[4, 3].Piece as King; Assert.IsFalse(k.InCheck); }
public void kingInCheckMateWhenInCheckWithNoPossibleMoves() { Board b = TestBoard.createBoard(); b.Place <King>(Piece.PlayerColour.White, 7, 3); b.Place <Rook>(Piece.PlayerColour.Black, 6, 0); b.Place <Queen>(Piece.PlayerColour.Black, 7, 0); King k = b.GetFirstPiece <King>(Piece.PlayerColour.White); Assert.IsTrue(k.InCheckMate); }
public void whitePawnAutoPromotionWithTakingPieceToTopRow() { Board b = TestBoard.createBoard(); b.Place <Pawn>(Piece.PlayerColour.White, 1, 2); b.GetFirstPiece <Pawn>(Piece.PlayerColour.White).AtStartPosition = false; b.Place <Bishop>(Piece.PlayerColour.Black, 0, 3); b.Select(1, 2); b.Move(0, 3); Assert.IsInstanceOfType(b[0, 3].Piece, typeof(Queen)); }