Exemple #1
0
        protected GameLogic NewLogic(params LambdaRobot[] robots)
        {
            var game = NewGame();

            game.Robots.AddRange(robots);
            for (var i = 0; i < game.Robots.Count; ++i)
            {
                game.Robots[i].Index = i;
            }
            _provider = new GameDependencyProvider(
                game,
                new Random(100),
                async robot => new LambdaRobotBuild {
                Name = robot.Id
            },
                async robot => {
                // destructively fetch next action from dictionary or null if none exist
                if (_robotActions.TryGetValue(robot.Id, out var actions) && (actions?.Any() ?? false))
                {
                    var action = actions.First();
                    actions.RemoveAt(0);
                    return(action());
                }
                return(new LambdaRobotAction());
            }
                );
            return(new GameLogic(_provider));
        }
Exemple #2
0
        protected GameLogic NewLogic(params BotInfo[] bots)
        {
            var game = NewGameSession();

            game.Bots.AddRange(bots);
            for (var i = 0; i < game.Bots.Count; ++i)
            {
                game.Bots[i].Index = i;
            }
            _provider = this;
            return(new GameLogic(game, _provider));
        }
Exemple #3
0
 //--- Constructors ---
 public GameLogic(IGameDependencyProvider provider)
 {
     _provider = provider ?? throw new ArgumentNullException(nameof(provider));
 }
 //--- Constructors ---
 public GameLogic(GameSession gameSession, IGameDependencyProvider provider)
 {
     GameSession = gameSession ?? throw new ArgumentNullException(nameof(gameSession));
     _provider   = provider ?? throw new ArgumentNullException(nameof(provider));
 }