Exemple #1
0
        public void blackPawnCanMoveTwoSpacesAtStart()
        {
            Board b = TestBoard.createAndSetupBoard();

            b.Select(1, 0);
            b.Move(3, 0);
        }
Exemple #2
0
        public void blackPawnCannotMoveBackwards()
        {
            Board b = TestBoard.createAndSetupBoard();

            b.Select(1, 0);
            b.Move(0, 0);
        }
Exemple #3
0
        public void canSimTillCheckMate()
        {
            Board b = TestBoard.createAndSetupBoard();
            int   checkMateCounter = 0;

            foreach (Board.BoardWithHistory simBoard in b.EnumSimTill(Piece.PlayerColour.White, C =>
            {
                if (C.MoveCount == 10)
                {
                    return(true);
                }
                else
                {
                    King blackKing = C.Board.GetFirstPiece <King>(Piece.PlayerColour.Black);
                    return(blackKing.InCheckMate);
                }
            }))
            {
                King blackKing = simBoard.Board.GetFirstPiece <King>(Piece.PlayerColour.Black);
                if (blackKing.InCheckMate)
                {
                    checkMateCounter++;
                }
            }
            int x = 46;
        }
Exemple #4
0
        public void whitePawnCannotTakeTwoRowsForwardAtStart()
        {
            Board b = TestBoard.createAndSetupBoard();

            b.Select(1, 0);
            b.Move(3, 0);

            b.Select(6, 1);
            b.Move(4, 1);

            b.Select(3, 0);
            b.Move(4, 1);

            b.Select(4, 1);
            b.Move(5, 1);

            b.Select(1, 1);
            b.Move(3, 1);

            b.Select(3, 1);
            b.Move(4, 1);

            b.Select(6, 0);
            b.Move(4, 1);
        }
Exemple #5
0
        public void canTakePawnEnPassantLeft()
        {
            Board b = TestBoard.createAndSetupBoard();

            setupWhiteEnPassantLeft(b);
            whiteTakeEnPassantLeft(b);
        }
Exemple #6
0
        public void blackPawnCannotTakeEmptyPieceRight()
        {
            Board b = TestBoard.createAndSetupBoard();

            b.Select(1, 7);
            b.Move(2, 6);
        }
Exemple #7
0
        public void canBlackPawnMoveOneSpaceForward()
        {
            Board b = TestBoard.createAndSetupBoard();

            b.Select(1, 0);
            b.Move(2, 0);
        }
Exemple #8
0
        public void canGetSelectedCell()
        {
            Board b = TestBoard.createAndSetupBoard();

            b.Select(0, 1);
            Assert.AreEqual <Cell>(b[0, 1], b.SelectedCell);
        }
Exemple #9
0
        public void exceptionWhenMoveTooLargeRow()
        {
            Board b = TestBoard.createAndSetupBoard();

            b.Select(6, 0);
            b.Move(Board.NumOfRows + 1, 0);
        }
Exemple #10
0
        public void areQueensSetup()
        {
            Board b = TestBoard.createAndSetupBoard();

            Assert.AreEqual <char>(Piece.Queen, b[0, 3].Piece.Type);
            Assert.AreEqual <char>(Piece.Queen, b[7, 3].Piece.Type);
        }
Exemple #11
0
        public void whitePawnCanMoveTwoSpacesAtStart()
        {
            Board b = TestBoard.createAndSetupBoard();

            b.Select(6, 0);
            b.Move(4, 0);
        }
Exemple #12
0
        public void whitePawnCannotTakeEmptyPieceLeft()
        {
            Board b = TestBoard.createAndSetupBoard();

            b.Select(6, 1);
            b.Move(5, 0);
        }
Exemple #13
0
        public void whitePawnCannotMoveBackwards()
        {
            Board b = TestBoard.createAndSetupBoard();

            b.Select(6, 0);
            b.Move(7, 0);
        }
Exemple #14
0
        public void exceptionWhenMoveTooLargeCol()
        {
            Board b = TestBoard.createAndSetupBoard();

            b.Select(6, 0);
            b.Move(0, Board.NumOfCols + 1);
        }
Exemple #15
0
        public void canWhitePawnMoveOneSpaceForward()
        {
            Board b = TestBoard.createAndSetupBoard();

            b.Select(6, 0); //White 1st pawn
            b.Move(5, 0);
        }
Exemple #16
0
        public void cannotMove2AtStartIfPieceJustInFront()
        {
            Board b = TestBoard.createAndSetupBoard();

            b.Select(6, 7);
            b.Move(5, 7);

            b.Select(1, 0);
            b.Move(3, 0);

            b.Select(6, 6);
            b.Move(5, 6);

            b.Select(3, 0);
            b.Move(4, 0);

            b.Select(6, 5);
            b.Move(5, 5);

            b.Select(4, 0);
            b.Move(5, 0);

            b.Select(6, 0);
            b.Move(4, 0);
        }
Exemple #17
0
        public void exceptionWhenMoveToNegativeCol()
        {
            Board b = TestBoard.createAndSetupBoard();

            b.Select(6, 0);
            b.Move(0, -1);
        }
Exemple #18
0
        public void areKingsSetup()
        {
            Board b = TestBoard.createAndSetupBoard();

            Assert.AreEqual <char>(Piece.King, b[0, 4].Piece.Type);
            Assert.AreEqual <char>(Piece.King, b[7, 4].Piece.Type);
        }
Exemple #19
0
        public void selectedCellIsNullAfterMove()
        {
            Board b = TestBoard.createAndSetupBoard();

            b.Select(6, 0); //white 1st pawn
            b.Move(5, 0);
            Assert.IsNull(b.SelectedCell);
        }
Exemple #20
0
        public void cannotMoveEnPassantIfOtherPieceNotAPawn()
        {
            Board b = TestBoard.createAndSetupBoard();

            setupWhiteEnPassantRight(b);
            b[3, 1].Piece = new Bishop(Piece.PlayerColour.Black, b[3, 1], b);
            whiteTakeEnPassantRight(b);
        }
Exemple #21
0
        public void moveEnPassantLeftRemovesPiece()
        {
            Board b = TestBoard.createAndSetupBoard();

            setupWhiteEnPassantLeft(b);
            whiteTakeEnPassantLeft(b);
            Assert.IsTrue(b.IsCellEmpty(3, 0));
        }
Exemple #22
0
        public void areKnightsSetup()
        {
            Board b = TestBoard.createAndSetupBoard();

            Assert.AreEqual <char>(Piece.Knight, b[0, 1].Piece.Type);
            Assert.AreEqual <char>(Piece.Knight, b[0, 6].Piece.Type);
            Assert.AreEqual <char>(Piece.Knight, b[7, 1].Piece.Type);
            Assert.AreEqual <char>(Piece.Knight, b[7, 6].Piece.Type);
        }
Exemple #23
0
        public void areRooksSetup()
        {
            Board b = TestBoard.createAndSetupBoard();

            Assert.AreEqual <char>(Piece.Rook, b[0, 0].Piece.Type);
            Assert.AreEqual <char>(Piece.Rook, b[0, 7].Piece.Type);
            Assert.AreEqual <char>(Piece.Rook, b[7, 0].Piece.Type);
            Assert.AreEqual <char>(Piece.Rook, b[7, 7].Piece.Type);
        }
Exemple #24
0
        public void areBishopsSetup()
        {
            Board b = TestBoard.createAndSetupBoard();

            Assert.AreEqual <char>(Piece.Bishop, b[0, 2].Piece.Type);
            Assert.AreEqual <char>(Piece.Bishop, b[0, 5].Piece.Type);
            Assert.AreEqual <char>(Piece.Bishop, b[7, 2].Piece.Type);
            Assert.AreEqual <char>(Piece.Bishop, b[7, 5].Piece.Type);
        }
Exemple #25
0
        public void queensSetupOnCorrectColour()
        {
            Board b = TestBoard.createAndSetupBoard();

            Assert.AreEqual <Color>(Color.White, b[0, 0].Colour);
            Assert.AreEqual <Color>(Color.White, b[7, 3].Colour);
            Assert.AreEqual <Color>(Color.Black, b[0, 3].Colour);
            Assert.AreEqual <Color>(Color.Black, b[7, 0].Colour);
        }
Exemple #26
0
        public void moveEnPassantLeftNotImmediateThrowError()
        {
            Board b = TestBoard.createAndSetupBoard();

            setupWhiteEnPassantLeft(b);
            White6thPawnUpOne(b);
            Black3rdPawnUpOne(b);
            whiteTakeEnPassantLeft(b);
        }
Exemple #27
0
        public void kingNotInCheckMateByDefault()
        {
            Board b  = TestBoard.createAndSetupBoard();
            King  wk = b.GetFirstPiece <King>(Piece.PlayerColour.White);
            King  bk = b.GetFirstPiece <King>(Piece.PlayerColour.Black);

            Assert.IsFalse(wk.InCheckMate);
            Assert.IsFalse(bk.InCheckMate);
        }
Exemple #28
0
        public void blackPawnCannotMoveTwoSpacesAfterStart()
        {
            Board b = TestBoard.createAndSetupBoard();

            b.Select(1, 0);
            b.Move(2, 0);
            b.Select(2, 0);
            b.Move(4, 0);
        }
Exemple #29
0
        public void isCellEmptyWhenMovedOff()
        {
            Board b = TestBoard.createAndSetupBoard();

            b.Select(6, 0); //white 1st pawn
            GameCell selectedCell = b.SelectedCell;

            b.Move(5, 0);
            Assert.AreEqual <char>(selectedCell.Piece.Type, Piece.Empty);
        }
Exemple #30
0
        public void arePawnsSetup()
        {
            Board b = TestBoard.createAndSetupBoard();

            for (int i = 0; i < Board.NumOfCols; i++)
            {
                Assert.AreEqual <char>(Piece.Pawn, b[1, i].Piece.Type);
                Assert.AreEqual <char>(Piece.Pawn, b[6, i].Piece.Type);
            }
        }