static void Main(string[] args) { // Given arguments saved to private properties CommandLine.Parser.Default.ParseArguments <Options>(args) .WithParsed(RunOptions) .WithNotParsed(HandleParseError); if (_stopArgsGiven) { return; } Log($"Chess ai vergiBlue [{_currentVersion}]"); while (true) { if (_gameMode <= 0) { // User did not explicitly set gamemode in command line arguments _gameMode = InputGameMode(); } if (_gameMode < 0) { break; } if (_gameMode == 1) { using var connection = new grpcClientConnection(_fullAddress); NetworkGame.Start(connection, _playerName, false); break; } else if (_gameMode == 2) { Log(Environment.NewLine); Log("Give player name: "); Console.Write(" > "); var playerName = Console.ReadLine() ?? _playerName; Log($"Chess ai {playerName} [{_currentVersion}]"); using var connection = new grpcClientConnection(_fullAddress); NetworkGame.Start(connection, playerName, false); break; } else if (_gameMode == 3) { LocalGame.Start(_minimumDelayBetweenMoves, null); } else if (_gameMode == 4) { LocalGame.Start(Math.Max(1000, _minimumDelayBetweenMoves), null); } else if (_gameMode == 5) { LocalGame.CustomStart(); } else if (_gameMode == 9) { using var connection = new grpcClientConnection(_fullAddress); NetworkGame.Start(connection, "Connection test AI", true); break; } else { break; } Log(Environment.NewLine); } }