public BeeGame Start(GameSettings settings) { if (settings.GetQueensConfig().Elements == settings.GetQueensConfig().Min) throw new ArgumentException("Queen Bees Quantity Can't be 0"); if (settings.GetWorkersConfig().Elements == settings.GetWorkersConfig().Min) throw new ArgumentException("Worker Bees Quantity Can't be 0"); if (settings.GetDronesConfig().Elements == settings.GetDronesConfig().Min) throw new ArgumentException("Drone Bees Quantity Can't be 0"); Hive = _hive.PopulateHive(settings); UpdateGameStatus(Hive); IsPlaying = true; return this; }
public IList<IBee> PopulateHive(GameSettings settings) { var hivePopulation = (settings.GetQueensConfig().Elements+ settings.GetWorkersConfig().Elements + settings.GetDronesConfig().Elements); var random = new Random((int)DateTime.Now.Ticks & 0x0000FFFF); var hive = new IBee[hivePopulation]; //TODO: Use a availableSlot Array splicing used units GenerateBees(beeType: typeof(Queen), container: hive, rule: settings.GetQueensConfig()); GenerateBees(beeType: typeof(Worker), container: hive, rule: settings.GetWorkersConfig()); GenerateBees(beeType: typeof(Drone), container: hive, rule: settings.GetDronesConfig()); return hive; }