Beispiel #1
0
 public void PrintWinner(IPlayer player, GameGrid grid)
 {
     Console.WriteLine();
     Console.WriteLine($"{player.PlayerName} Wins!");
     Print(grid);
     Console.WriteLine();
 }
Beispiel #2
0
        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();
        }
Beispiel #3
0
 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]);
 }