Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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);
            }
        }