public static int Main(string[] args) { if (args.Length != 2) { // Display help Console.WriteLine("Program: Play connect four"); Console.WriteLine("Usage:"); Console.WriteLine(" Program <player one name> <player two name>"); return(1); } // Play the game Console.WriteLine("Connect Four!"); Player <ConnectFourToken> playerOne = GetPlayerForName(args[0], ConnectFourToken.X); Player <ConnectFourToken> playerTwo = GetPlayerForName(args[1], ConnectFourToken.O); const int width = 7; const int height = 6; ConnectFourGame game = new ConnectFourGame(width, height, playerOne, playerTwo); Player <ConnectFourToken> winningPlayer = Play(game); Console.WriteLine(winningPlayer == null ? "Draw or AI fails to find solution!" : $"{winningPlayer.Name} wins!"); Console.WriteLine(game.ToString()); return(0); }
public static Player <ConnectFourToken> Play(ConnectFourGame game) { Player <ConnectFourToken> winningPlayer; do { Console.WriteLine($"Round #{game.RoundNumber}"); Console.WriteLine(game.ToString()); Move <ConnectFourToken> nextMove = game.CurrentPlayer.GetNextMove(game); if (nextMove == null) { winningPlayer = null; break; } Console.WriteLine(nextMove.ToString()); game.TryMove(nextMove); } while (!game.IsGameOver(out winningPlayer)); return(winningPlayer); }