Пример #1
0
        private GameState UpdateGameState(GameState currState)
        {
            Log("Updating the stats");
            var gameState = currState ?? new GameState((o) => Log(o));

            string[] inputs = null;
            for (int i = 0; i < 2; i++)
            {
                LifeBot botToWorkOn = i == 0 ? gameState.MyLifeBot : gameState.EnemyLifeBot;
                inputs                 = ReadLine().Split(' ');
                botToWorkOn.Target     = inputs[0];
                botToWorkOn.ETA        = int.Parse(inputs[1]);
                botToWorkOn.Score      = int.Parse(inputs[2]);
                botToWorkOn.StorageA   = int.Parse(inputs[3]);
                botToWorkOn.StorageB   = int.Parse(inputs[4]);
                botToWorkOn.StorageC   = int.Parse(inputs[5]);
                botToWorkOn.StorageD   = int.Parse(inputs[6]);
                botToWorkOn.StorageE   = int.Parse(inputs[7]);
                botToWorkOn.ExpertiseA = int.Parse(inputs[8]);
                botToWorkOn.ExpertiseB = int.Parse(inputs[9]);
                botToWorkOn.ExpertiseC = int.Parse(inputs[10]);
                botToWorkOn.ExpertiseD = int.Parse(inputs[11]);
                botToWorkOn.ExpertiseE = int.Parse(inputs[12]);
            }

            inputs = ReadLine().Split(' ');
            gameState.AvailableA = int.Parse(inputs[0]);
            gameState.AvailableB = int.Parse(inputs[1]);
            gameState.AvailableC = int.Parse(inputs[2]);
            gameState.AvailableD = int.Parse(inputs[3]);
            gameState.AvailableE = int.Parse(inputs[4]);

            int sampleCount = int.Parse(Console.ReadLine());

            Log($"Reading {sampleCount} samples");
            gameState.Samples.Clear();             //Purge old stuff
            for (int i = 0; i < sampleCount; i++)
            {
                gameState.Samples.Add(ReadSample(ReadLine()));
            }

            //Update samples held by my bot
            gameState.MyLifeBot.SamplesWorkingOn = gameState.Samples.Where(s => s.Mine && s.Diagnosed).ToList();
            gameState.MyLifeBot.SamplesAnalyzing = gameState.Samples.Where(s => s.Mine && !s.Diagnosed).ToList();

            Log("Retrieved gamestate");
            return(gameState);
        }
Пример #2
0
 public GameState(Action <object> log) : base(log)
 {
     MyLifeBot    = new ControllableLifeBot(log);
     EnemyLifeBot = new LifeBot(log);
 }