Example #1
0
    public void ScrambleTeams()
    {
        Thread.Sleep(5000);
        _bots.RemoveBots();
        Thread.Sleep(2000);
        List <int> greaterTeamSlots;
        List <int> smallerTeamSlots;
        Team       smallerTeam;

        if (_observation.GetBlueTeamSizeAdvantage() > 0)
        {
            greaterTeamSlots = _cg.BlueSlots;
            smallerTeamSlots = _cg.RedSlots;
            smallerTeam      = Team.Red;
        }
        else
        {
            greaterTeamSlots = _cg.RedSlots;
            smallerTeamSlots = _cg.BlueSlots;
            smallerTeam      = Team.Blue;
        }

        ScrambleEvenPortionsOfTeams(smallerTeamSlots, greaterTeamSlots);
        Thread.Sleep(3000);
        ScrambleUnevenPortionsOfTeams(smallerTeamSlots, greaterTeamSlots, smallerTeam);
    }
Example #2
0
    public void SwapToBalance()
    {
        int blueTeamSizeAdvantage = _observation.GetBlueTeamSizeAdvantage();

        if (!_observation.GetTeamsAreBalanced())
        {
            List <int> slots;

            Team emptyTeam;
            if (blueTeamSizeAdvantage > 0)
            {
                slots     = _observation.GetBlueSlots();
                emptyTeam = Team.Red;
            }
            else
            {
                slots     = _observation.GetRedSlots();
                emptyTeam = Team.Blue;
            }

            Random rnd        = new Random();
            int    randomSlot = slots[rnd.Next(slots.Count)];
            SwapWithEmpty(randomSlot, emptyTeam);
        }
    }
Example #3
0
    public void HandleAutoBalance()
    {
//        _prevBlueTeamSizeAdvantage = _blueTeamSizeAdvantage;
        _blueTeamSizeAdvantage = _observation.GetBlueTeamSizeAdvantage();
        if (_observation.GetTeamsAreBalanced())
        {
            EndAutoBalance();
        }
        else if (_observation.GetImbalanceAmount() == 2)
        {
            Console.WriteLine($"blue team size advantage {_cg.BlueCount} vs {_cg.RedCount}");
            BeginAutoBalance();
        }
        else if (_observation.GetImbalanceAmount() >= 3 || _cg.BlueCount == 0 || _cg.RedCount == 0)
        {
            Console.WriteLine($"blue team size advantage {_cg.BlueCount} vs {_cg.RedCount}");
            BeginAutoBalance();
        }
    }
Example #4
0
    public void SwapIfImbalance()
    {
        int blueTeamSizeAdvantage = _observation.GetBlueTeamSizeAdvantage();

        if (Math.Abs(blueTeamSizeAdvantage) >= 2)
        {
            Console.WriteLine("Evening teams");
            _manipulation.SwapToBalance();
        }
    }