Exemplo n.º 1
0
        public void CheckVictory_ShouldReturnNone_GivenNonWinningThirdRowHorizontals(
            int blackOne, int blackTwo,
            int redOne, int redTwo)
        {
            var board = BitBoardHelpers.GetNewBoard();

            // Fill first row with non winners
            board = BitBoardHelpers.BitBoardMove(in board, 0, DiscColor.Black);
            board = BitBoardHelpers.BitBoardMove(in board, 1, DiscColor.Red);
            board = BitBoardHelpers.BitBoardMove(in board, 2, DiscColor.Black);
            board = BitBoardHelpers.BitBoardMove(in board, 3, DiscColor.Red);
            board = BitBoardHelpers.BitBoardMove(in board, 4, DiscColor.Black);
            board = BitBoardHelpers.BitBoardMove(in board, 5, DiscColor.Red);
            board = BitBoardHelpers.BitBoardMove(in board, 6, DiscColor.Black);

            // Fill second row with non winners
            board = BitBoardHelpers.BitBoardMove(in board, 0, DiscColor.Red);
            board = BitBoardHelpers.BitBoardMove(in board, 1, DiscColor.Black);
            board = BitBoardHelpers.BitBoardMove(in board, 2, DiscColor.Red);
            board = BitBoardHelpers.BitBoardMove(in board, 3, DiscColor.Black);
            board = BitBoardHelpers.BitBoardMove(in board, 4, DiscColor.Red);
            board = BitBoardHelpers.BitBoardMove(in board, 5, DiscColor.Black);
            board = BitBoardHelpers.BitBoardMove(in board, 6, DiscColor.Red);

            board = BitBoardHelpers.BitBoardMove(in board, blackOne, DiscColor.Black);
            board = BitBoardHelpers.BitBoardMove(in board, blackTwo, DiscColor.Black);
            board = BitBoardHelpers.BitBoardMove(in board, redOne, DiscColor.Red);
            board = BitBoardHelpers.BitBoardMove(in board, redTwo, DiscColor.Red);

            var winner = BitBoardHelpers.CheckVictory(in board);

            Assert.AreEqual(DiscColor.None, winner);
        }
Exemplo n.º 2
0
        public void PossibleFallingDiagonals_ShouldReturnZero_GivenEmptyBoard()
        {
            var board = BitBoardHelpers.GetNewBoard();

            Assert.AreEqual(0.0m, BitBoardHelpers.ScorePossibleFallingDiagonals(board, DiscColor.Red));
            Assert.AreEqual(0.0m, BitBoardHelpers.ScorePossibleFallingDiagonals(board, DiscColor.Black));
        }
Exemplo n.º 3
0
        public void GetNewBoard_ShouldReturnBoardWithAllOpenColumns()
        {
            var board = BitBoardHelpers.GetNewBoard();

            Assert.IsTrue(BitBoardHelpers.IsColumnOpen(board, 0));
            Assert.IsTrue(BitBoardHelpers.IsColumnOpen(board, 1));
            Assert.IsTrue(BitBoardHelpers.IsColumnOpen(board, 2));
            Assert.IsTrue(BitBoardHelpers.IsColumnOpen(board, 3));
            Assert.IsTrue(BitBoardHelpers.IsColumnOpen(board, 4));
            Assert.IsTrue(BitBoardHelpers.IsColumnOpen(board, 5));
            Assert.IsTrue(BitBoardHelpers.IsColumnOpen(board, 6));
        }
Exemplo n.º 4
0
        public void BitBoardMove_ShouldReturnOpenColumn_GivenFiveMovesInSameColumn(int column)
        {
            var board = BitBoardHelpers.GetNewBoard();

            board = BitBoardHelpers.BitBoardMove(in board, column, DiscColor.Red);
            board = BitBoardHelpers.BitBoardMove(in board, column, DiscColor.Red);
            board = BitBoardHelpers.BitBoardMove(in board, column, DiscColor.Red);
            board = BitBoardHelpers.BitBoardMove(in board, column, DiscColor.Red);
            board = BitBoardHelpers.BitBoardMove(in board, column, DiscColor.Red);

            Assert.IsTrue(BitBoardHelpers.IsColumnOpen(board, column));
        }
Exemplo n.º 5
0
        public void CheckVictory_ShouldReturnNone_GivenThreeBlackMovesInColumn(int column)
        {
            var board = BitBoardHelpers.GetNewBoard();

            board = BitBoardHelpers.BitBoardMove(in board, column, DiscColor.Black);
            board = BitBoardHelpers.BitBoardMove(in board, column, DiscColor.Black);
            board = BitBoardHelpers.BitBoardMove(in board, column, DiscColor.Black);

            var winner = BitBoardHelpers.CheckVictory(board);

            Assert.AreEqual(DiscColor.None, winner);
        }
Exemplo n.º 6
0
        public void CheckVictory_ShouldReturnBlack_GivenBlackWinningColumn(int column)
        {
            var board = BitBoardHelpers.GetNewBoard();

            board = BitBoardHelpers.BitBoardMove(in board, column, DiscColor.Black);
            board = BitBoardHelpers.BitBoardMove(in board, column, DiscColor.Black);
            board = BitBoardHelpers.BitBoardMove(in board, column, DiscColor.Black);
            board = BitBoardHelpers.BitBoardMove(in board, column, DiscColor.Black);

            var winner = BitBoardHelpers.CheckVictory(board);

            Assert.AreEqual(DiscColor.Black, winner);
        }
Exemplo n.º 7
0
        public void CheckVictory_ShouldReturnNone_GivenNonWinningFirstRowHorizontals(
            int blackOne, int blackTwo,
            int redOne, int redTwo)
        {
            var board = BitBoardHelpers.GetNewBoard();

            board = BitBoardHelpers.BitBoardMove(in board, blackOne, DiscColor.Black);
            board = BitBoardHelpers.BitBoardMove(in board, blackTwo, DiscColor.Black);
            board = BitBoardHelpers.BitBoardMove(in board, redOne, DiscColor.Red);
            board = BitBoardHelpers.BitBoardMove(in board, redTwo, DiscColor.Red);

            var winner = BitBoardHelpers.CheckVictory(in board);

            Assert.AreEqual(DiscColor.None, winner);
        }
Exemplo n.º 8
0
        public void CheckVictory_ShouldReturnNone_GivenThreeBlackMovesInRow(
            int firstColumn,
            int secondColumn,
            int thirdColumn)
        {
            var board = BitBoardHelpers.GetNewBoard();

            board = BitBoardHelpers.BitBoardMove(in board, firstColumn, DiscColor.Black);
            board = BitBoardHelpers.BitBoardMove(in board, secondColumn, DiscColor.Black);
            board = BitBoardHelpers.BitBoardMove(in board, thirdColumn, DiscColor.Black);

            var winner = BitBoardHelpers.CheckVictory(board);

            Assert.AreEqual(DiscColor.None, winner);
        }
Exemplo n.º 9
0
        public void CheckVictory_ShouldReturnRed_GivenFourRedMovesInRow(
            int firstColumn,
            int secondColumn,
            int thirdColumn,
            int fourthColumn)
        {
            var board = BitBoardHelpers.GetNewBoard();

            board = BitBoardHelpers.BitBoardMove(in board, firstColumn, DiscColor.Red);
            board = BitBoardHelpers.BitBoardMove(in board, secondColumn, DiscColor.Red);
            board = BitBoardHelpers.BitBoardMove(in board, thirdColumn, DiscColor.Red);
            board = BitBoardHelpers.BitBoardMove(in board, fourthColumn, DiscColor.Red);

            var winner = BitBoardHelpers.CheckVictory(board);

            Assert.AreEqual(DiscColor.Red, winner);
        }