public void PrintWinner(IPlayer player, GameGrid grid) { Console.WriteLine(); Console.WriteLine($"{player.PlayerName} Wins!"); Print(grid); Console.WriteLine(); }
static void Main(string[] args) { var gameGrid = new GameGrid(); var printer = new GameGridPrinter(); var rules = new GameRules(); // Todo, get the number of human players from console // 3d TicTacToe using some web graphics thing??? IPlayer player1 = new ConsoleHumanPlayer("Player 1", GridValue.X); IPlayer player2 = new MiniMaxPlayer("Player 2", GridValue.O, rules); var playerQueue = new Queue<IPlayer>(new[] { player1, player2 }); while (true) { printer.Print(gameGrid); var player = playerQueue.Dequeue(); playerQueue.Enqueue(player); var move = player.GetMove(gameGrid); gameGrid.PlaceMove(move); var winner = rules.GetWinner(gameGrid); if(winner == null) { continue; } printer.PrintWinner(playerQueue.First(x => x.PlayerSide == winner), gameGrid); break; } // Todo, abstract Console.WriteLine("Press any key to continue..."); Console.ReadKey(); }
public void Print(GameGrid grid) { Console.WriteLine(" A B C"); PrintRow("1", grid[0, 0], grid[1, 0], grid[2, 0]); PrintRowSeparator(); PrintRow("2", grid[0, 1], grid[1, 1], grid[2, 1]); PrintRowSeparator(); PrintRow("3", grid[0, 2], grid[1, 2], grid[2, 2]); }