public void PlayerAlwaysWinsOrDrawsIfStartsTheGame() { var naughts = new TurnByTurnPlayerStub(); var crosses = new MiniMaxPlayer(naughts); var result = PlayAllPossibleGames(new TicTacToeBoard(), crosses, naughts); Assert.That(result.Losses, Is.EqualTo(0)); }
public void FindBestStartingMove() { var naughts = new TurnByTurnPlayerStub(); var crosses = new MiniMaxPlayer(naughts); var board = new TicTacToeBoard(new ITicTacToePlayer[] { null, null, null, null, null, null, null, null, null }); var position = crosses.PlayTurn(board); Assert.That(position, Is.EqualTo(new BoardPosition(1, 1))); }
public void MakeWinningMove() { var naughts = new TurnByTurnPlayerStub(); var crosses = new MiniMaxPlayer(naughts); var board = new TicTacToeBoard(new ITicTacToePlayer[] { naughts, null, crosses, null, naughts, null, naughts, null, crosses }); var position = crosses.PlayTurn(board); Assert.That(position, Is.EqualTo(new BoardPosition(2, 3))); }
public void PlayerAlwaysWinsOrDrawsIfOtherPlayerStartsTheGame() { var naughts = new TurnByTurnPlayerStub(); var crosses = new MiniMaxPlayer(naughts); var board = new TicTacToeBoard(); var tally = ScoreTally.Start; foreach (var square in board.VacantSquares) { var results = PlayAllPossibleGames(board.UpdateBoard(square, naughts), crosses, naughts); tally = tally + results; } Assert.That(tally.Losses, Is.EqualTo(0)); }
public static void Main(string[] args) { var naughts = new ConsolePlayer(new ConsoleInput()); var crosses = new MiniMaxPlayer(naughts); var game = new TicTacToeGame(naughts, crosses); var printer = new GameBoardPrinter(game); Console.WriteLine("Welcome to Helen's TicTacToe game!"); Console.WriteLine(printer.Board()); while (!game.IsFinished) { Console.WriteLine("It's " + printer.NameForPlayer(game.CurrentPlayer) + "'s turn!"); game.PlayTurn(); Console.WriteLine(printer.Board()); } Console.WriteLine("Game over!"); Console.WriteLine(printer.WinnerMessage()); Console.ReadLine(); }