Exemple #1
0
        public void canSim2MovesAheadWithOptions()
        {
            Board b = TestBoard.createBoard();

            b.Place <Pawn>(Piece.PlayerColour.White, 4, 3);
            b.Place <Pawn>(Piece.PlayerColour.Black, 2, 4);
            b.GetFirstPiece <Pawn>(Piece.PlayerColour.White).AtStartPosition = false;
            b.GetFirstPiece <Pawn>(Piece.PlayerColour.Black).AtStartPosition = false;
            SimulationTree simTree             = b.Simulate(Piece.PlayerColour.Black, 2);
            List <Board>   twoMovesAheadBoards = simTree.GetPossibilitesAtNumMovesAhead(2);

            Assert.AreEqual <int>(2, twoMovesAheadBoards.Count);

            List <Cell> expectedPositions = new List <Cell>()
            {
                new Cell(3, 3),
                new Cell(3, 4),
            };

            foreach (Board possibleBoard in twoMovesAheadBoards)
            {
                Pawn whitePawn = possibleBoard.GetFirstPiece <Pawn>(Piece.PlayerColour.White);
                Assert.IsTrue(expectedPositions.Contains(whitePawn.ParentCell));
            }
        }
Exemple #2
0
        public void simulateReturnSimTree()
        {
            Board b = TestBoard.createBoard();

            b.Place <Pawn>(Piece.PlayerColour.White, 4, 3);
            b.Place <Pawn>(Piece.PlayerColour.Black, 1, 1);
            SimulationTree simTree = b.Simulate(Piece.PlayerColour.White, 2);
        }
Exemple #3
0
        public void ReturnedSimTreeCanGetBoardsAtNumMovesAhead()
        {
            Board b = TestBoard.createBoard();

            b.Place <Pawn>(Piece.PlayerColour.White, 4, 3);
            b.Place <Pawn>(Piece.PlayerColour.Black, 1, 1);
            SimulationTree simTree             = b.Simulate(Piece.PlayerColour.White, 2);
            List <Board>   twoMovesAheadBoards = simTree.GetPossibilitesAtNumMovesAhead(2);
        }
Exemple #4
0
        public void canSim2MovesWithWithMultiplePieces()
        {
            Board b = TestBoard.createBoard();

            b.Place <Knight>(Piece.PlayerColour.White, 7, 1);
            b.Place <Knight>(Piece.PlayerColour.Black, 0, 1);
            SimulationTree simTree             = b.Simulate(Piece.PlayerColour.White, 2);
            List <Board>   twoMovesAheadBoards = simTree.GetPossibilitesAtNumMovesAhead(2);

            Assert.AreEqual <int>(9, twoMovesAheadBoards.Count);
        }
Exemple #5
0
        public void canSimulateOneMoveAhead()
        {
            Board b = TestBoard.createBoard();

            b.Place <Pawn>(Piece.PlayerColour.White, 4, 3);
            b.Place <Pawn>(Piece.PlayerColour.Black, 1, 1);
            Pawn whitePawn = b.GetFirstPiece <Pawn>(Piece.PlayerColour.White);

            whitePawn.AtStartPosition = false;
            SimulationTree simTree            = b.Simulate(Piece.PlayerColour.White, 1);
            List <Board>   oneMoveAheadBoards = simTree.GetPossibilitesAtNumMovesAhead(1);

            Assert.AreEqual <int>(1, oneMoveAheadBoards.Count);
            Pawn oneMoveAheadPawn = oneMoveAheadBoards[0].GetFirstPiece <Pawn>(Piece.PlayerColour.White);

            Assert.AreEqual <Cell>(new Cell(3, 3), oneMoveAheadPawn.ParentCell);
        }
Exemple #6
0
        public void canSimFourMovesAhead()
        {
            Board b = TestBoard.createBoard();

            b.Place <Pawn>(Piece.PlayerColour.White, 4, 3);
            b.Place <Pawn>(Piece.PlayerColour.Black, 2, 1);
            b.GetFirstPiece <Pawn>(Piece.PlayerColour.White).AtStartPosition = false;
            b.GetFirstPiece <Pawn>(Piece.PlayerColour.Black).AtStartPosition = false;
            SimulationTree simTree = b.Simulate(Piece.PlayerColour.White, 4);
            List <Board>   fourMovesAheadBoards = simTree.GetPossibilitesAtNumMovesAhead(4);

            Assert.AreEqual <int>(1, fourMovesAheadBoards.Count);

            Pawn whiteOneMoveAheadPawn = fourMovesAheadBoards[0].GetFirstPiece <Pawn>(Piece.PlayerColour.White);

            Assert.AreEqual <Cell>(new Cell(2, 3), whiteOneMoveAheadPawn.ParentCell);

            Pawn blackTwoMovesAheadPawn = fourMovesAheadBoards[0].GetFirstPiece <Pawn>(Piece.PlayerColour.Black);

            Assert.AreEqual <Cell>(new Cell(4, 1), blackTwoMovesAheadPawn.ParentCell);
        }