private static void StartNewGame(List <Player> players) { var game = new BombermanEngine(); game.Logger = new ConsoleLogger(); game.RoundComplete += GameOnRoundComplete; game.PrepareGame(players, new Random().Next()); game.StartNewGame(); }
public void StartNewGame(Options options) { var players = new List <Player>(); var gameSeed = options.GameSeed ?? new Random().Next(); _runLocation = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Replays"); try { _engine = new BombermanEngine { Logger = Logger }; _engine.GameComplete += EngineOnGameComplete; _engine.RoundStarting += WriteStateFiles; _engine.RoundComplete += WriteEgineInfo; if (options.Pretty) { _engine.RoundStarting += engine_RoundComplete; _engine.GameStarted += EngineOnGameStarted; } _runLocation = !String.IsNullOrEmpty(options.Log) ? options.Log : Path.Combine(_runLocation, gameSeed.ToString()); for (var i = 0; i < options.ConsolePlayers; i++) { players.Add(new ConsoleHarness("Player " + (players.Count + 1))); } players.AddRange(options.BotFolders.Select(botFolder => LoadBot(botFolder, _runLocation, options.NoLimit, options.DebugMode)).Where(player => player != null)); if (players.Count == 0) { for (var i = 0; i < 2; i++) { players.Add(new ConsoleHarness("Player " + (players.Count + 1))); } } foreach (var player in players) { Logger.LogInfo("Registered player " + player.Name); } _engine.PrepareGame(players, gameSeed); //WriteStateFiles(_engine.GetGameState(), 0); _engine.StartNewGame(); } catch (Exception ex) { Console.WriteLine(ex); } }