public void WhenOwnWinScoreEQ100() { BoardScorer boardScorer = new BoardScorer(); BoardPosition[,] simpleBlackTeamWin = GetSimpleWinBlack(); int score = boardScorer.ScoreBoard(simpleBlackTeamWin, TeamName.BlackTeam); Assert.AreEqual(100, score); }
public void GivenBlockableBoardEQ0() { BoardScorer boardScorer = new BoardScorer(); BoardPosition[,] simpleBlackTeamWin = BuildBlockableBoard(); int score = boardScorer.ScoreBoard(simpleBlackTeamWin, TeamName.BlackTeam); Assert.AreEqual(0, score); }
public void GivenValidElevatedSetEQ95() { BoardScorer boardScorer = new BoardScorer(); BoardPosition[,] simpleBlackTeamWin = GetValidElevatedHorizontalSet(); int score = boardScorer.ScoreBoard(simpleBlackTeamWin, TeamName.BlackTeam); Assert.AreEqual(95, score); }
public void GivenUnbeatableSetElevatedNEQ100() { BoardScorer boardScorer = new BoardScorer(); BoardPosition[,] simpleBlackTeamWin = GetInvalidElevatedSet(); int score = boardScorer.ScoreBoard(simpleBlackTeamWin, TeamName.BlackTeam); Assert.AreNotEqual(100, score); }
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)); }
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)); }
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)); }