Britbot
static List<int> Britbot.ConfigHelper.GetUltimateGameConfig ( ) [inline, static, private]

Returns a list of integers that describes the current wanted configuration.

Returns:
The optimal group configuration

Definition at line 120 of file ConfigHelper.cs.

        {
            //Enemy configuration
            int[] eConfig = Enemy.Groups.ConvertAll(group => @group.EnemyPirates.Count).ToArray();

            //sort the enemy configuration by size
            Array.Sort(eConfig, (a, b) => b.CompareTo(a));

            //prepare return value
            List<int> ret = new List<int>();

            //count of all of our pirates
            int myPirates = Bot.Game.AllMyPirates().Count;

            for (int i = 0; i < eConfig.Length && myPirates > 0; i++)
            {
                if (((eConfig[i] + 1) < myPirates) && ((eConfig[i] + 1) < Magic.MaxGroupSize))
                {
                    ret.Add(eConfig[i] + 1);
                    myPirates -= eConfig[i] + 1;
                }
            }

            while (myPirates > 0)
            {
                ret.Add(1);
                myPirates--;
            }

            while (ret.Count > Bot.Game.Islands().Count || ret.Count > Magic.MaxGroups)
            {
                ret[ret.Count - 2] += ret.Last();
                ret.RemoveAt(ret.Count - 1);
            }

            return ret;
        }