static void Main(string[] args) { while (true) { Grid grid = new Grid(6, 7); GameService gameService = new GameService(); grid.CounterAdded += gameService.OnCounterAdded; while (gameService.GameStatus == GameStatus.NoWinner) { if (!grid.IsComputersTurn) { WriteGridToConsole(grid); string column = Console.ReadLine(); if (!grid.IsValidUserInput(column)) { Console.WriteLine("Please enter a valid column number."); continue; } if (!grid.IsColumnFull(Convert.ToInt32(column))) { grid.AddCounter(new Counter { Column = Convert.ToInt32(column), PlayerType = PlayerType.Human }); grid.IsComputersTurn = true; } else { Console.WriteLine("That column is full please select another."); } } else { grid.TakeComputersTurn(); grid.IsComputersTurn = false; } } WriteGridToConsole(grid, true); WriteGameResultToConsole(gameService); } }