Exemplo n.º 1
0
        public void WhenOwnWinScoreEQ100()
        {
            BoardScorer boardScorer = new BoardScorer();

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

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

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

            Assert.AreEqual(0, score);
        }
Exemplo n.º 3
0
        public void GivenValidElevatedSetEQ95()
        {
            BoardScorer boardScorer = new BoardScorer();

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

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

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

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

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

            Assert.AreEqual(-95, score);
        }
Exemplo n.º 6
0
        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));
        }
Exemplo n.º 7
0
        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));
        }
Exemplo n.º 8
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));
        }
Exemplo n.º 9
0
        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));
        }
Exemplo n.º 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));
        }
Exemplo n.º 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));
        }