public void AddDaisy(Color col) { int index = emptySlots.Pop(); Daisy daisy = Daisies[index]; daisy.Color = col; daisy.IsAlive = true; IncrementCounter(col); }
public void KillDaisy(int index) { Daisy daisy = Daisies[index]; daisy.IsAlive = false; emptySlots.Push(index); DecrementCounter(daisy.Color); }
public World(IConstants constants) { Constants = constants; Temperature = Constants.DEFAULT_TEMPERATURE; Daisies = new Daisy[Constants.DAISY_COUNT]; for (int i = 0; i < Constants.DAISY_COUNT; i++) { Color col = Randomizer.GetRandomBool() ? Color.Black : Color.White; IncrementCounter(col); Daisies[i] = new Daisy() { Index = i, Color = col, IsAlive = true, Constants = constants }; } emptySlots = new Stack <int>(Constants.DAISY_COUNT); }
private void Expose() { for (int i = 0; i < Constants.DAISY_COUNT; i++) { Daisy daisy = world.Daisies[i]; if (!daisy.IsAlive) { continue; } double expositionTemp = world.Temperature + Randomizer.GetNormalOffset() + daisy.TemperatureOffset; if (!IsSurvivable(expositionTemp)) { logger.AddKill(daisy.Color); world.KillDaisy(i); continue; } } }