Example #1
0
        public void WhenOwnWinScoreEQ100()
        {
            BoardScorer boardScorer = new BoardScorer();

            BoardPosition[,] simpleBlackTeamWin = GetSimpleWinBlack();
            int score = boardScorer.ScoreBoard(simpleBlackTeamWin, TeamName.BlackTeam);

            Assert.AreEqual(100, score);
        }
Example #2
0
        public void GivenBlockableBoardEQ0()
        {
            BoardScorer boardScorer = new BoardScorer();

            BoardPosition[,] simpleBlackTeamWin = BuildBlockableBoard();
            int score = boardScorer.ScoreBoard(simpleBlackTeamWin, TeamName.BlackTeam);

            Assert.AreEqual(0, score);
        }
Example #3
0
        public void GivenValidElevatedSetEQ95()
        {
            BoardScorer boardScorer = new BoardScorer();

            BoardPosition[,] simpleBlackTeamWin = GetValidElevatedHorizontalSet();
            int score = boardScorer.ScoreBoard(simpleBlackTeamWin, TeamName.BlackTeam);

            Assert.AreEqual(95, score);
        }
Example #4
0
        public void GivenUnbeatableSetElevatedNEQ100()
        {
            BoardScorer boardScorer = new BoardScorer();

            BoardPosition[,] simpleBlackTeamWin = GetInvalidElevatedSet();
            int score = boardScorer.ScoreBoard(simpleBlackTeamWin, TeamName.BlackTeam);

            Assert.AreNotEqual(100, score);
        }
Example #5
0
        public void GivenUnwinnableSetEQ_NEG95()
        {
            BoardScorer boardScorer = new BoardScorer();

            BoardPosition[,] simpleBlackTeamWin = GetValidHorizontalSet();
            int score = boardScorer.ScoreBoard(simpleBlackTeamWin, TeamName.RedTeam);

            Assert.AreEqual(-95, score);
        }
        public void GetHeuristicScoreReturnsAppropriateScore()
        {
            string[] tokens = new string[] {
                "X", "X", "",
                "O", "", "X",
                "O", "", ""
            };
            var board   = new Board(tokens);
            var subject = new BoardScorer(board, "X", "O");

            var result = subject.GetHeuristicScore();

            Assert.That(result, Is.EqualTo(30));
        }
        public void GetTerminalBoardScoreReturnsZeroIfDraw()
        {
            string[] tokens = new string[] {
                "X", "O", "X",
                "O", "X", "O",
                "O", "X", "O"
            };
            var board   = new Board(tokens);
            var subject = new BoardScorer(board, "X", "O");

            var result = subject.GetTerminalBoardScore();

            Assert.That(result, Is.EqualTo(0));
        }
        public void GetTerminalBoardScoreReturnsNegativeIfOpponentWinner()
        {
            string[] tokens = new string[] {
                "O", "O", "O",
                "X", "X", "O",
                "X", "", ""
            };
            var board   = new Board(tokens);
            var subject = new BoardScorer(board, "X", "O");

            var result = subject.GetTerminalBoardScore();

            Assert.That(result, Is.EqualTo(MMConstants.MINIMAX_MIN));
        }
        public void GetHeuristicLineScoreReturnsPositiveIfOwnerCanWin()
        {
            string[] tokens = new string[] {
                "O", "", "",
                "O", "X", "",
                "", "X", ""
            };
            var board   = new Board(tokens);
            var subject = new BoardScorer(board, "X", "O");

            int[] line = new int[] { 1, 4, 7 };

            var result = subject.GetHeuristicLineScore(line);

            Assert.That(result, Is.EqualTo(20));
        }
Example #10
0
        public void GetHeuristicLineScoreReturnsZeroIfNoPossibleWinners()
        {
            string[] tokens = new string[] {
                "", "O", "X",
                "O", "X", "O",
                "", "X", ""
            };
            var board   = new Board(tokens);
            var subject = new BoardScorer(board, "X", "O");

            int[] line = new int[] { 0, 1, 2 };

            var result = subject.GetHeuristicLineScore(line);

            Assert.That(result, Is.EqualTo(0));
        }
Example #11
0
        public void GetHeuristicLineScoreReturnsNegativeIfOpponentCanWin()
        {
            string[] tokens = new string[] {
                "O", "O", "",
                "O", "X", "",
                "", "X", ""
            };
            var board   = new Board(tokens);
            var subject = new BoardScorer(board, "X", "O");

            int[] line = new int[] { 0, 1, 2 };

            var result = subject.GetHeuristicLineScore(line);

            Assert.That(result, Is.EqualTo(-20));
        }