Esempio n. 1
0
 public World(IPopulation pop, IPersonFactory pf, IRandomGenerator random, IMortalityCurve mc)
 {
     _mortalityCurve = mc;
     _registeredGenes = new GeneBank(this);
     WorldSeeds.BaseGenes(_registeredGenes, this);
     _population = pop;
     _personFactory = pf;
     _random = random;
     SeedWorld(1001);
 }
Esempio n. 2
0
 public World(IPopulation pop, IPersonFactory pf, IMortalityCurve mortalityCurve, IRandomGenerator random)
 {
     if (pop?.Populus?.Count > 0) pop.Populus.Clear();
     _random = random;
     _population = pop;
     _registeredGenes = new GeneBank(this);
     _personFactory = pf;
     _mortalityCurve = mortalityCurve;
     WorldSeeds.BaseGenes(_registeredGenes, this);
     SeedWorld(1000);
     _population?.UpdatePopulus();
 }
Esempio n. 3
0
 /// <summary>
 /// Increase the age of the current person
 /// </summary>
 public bool AgePerson(IMortalityCurve curve)
 {
     _eligibleForBreeding = CheckIfBreedingEligible();
     _age++;
     if (_hadBaby)
     {
         _hadBaby = false;
     }
     if (_pregnant)
     {
         _hadBaby = true;
         _pregnant = false;
     }
     return CheckSurvival(curve);
 }
Esempio n. 4
0
 /// <summary>
 /// Check if a person object is going to survive the current generation
 /// </summary>
 /// <param name="curve">The mortality curve used for that world</param>
 /// <returns></returns>
 public bool CheckSurvival(IMortalityCurve curve)
 {
     var survivalRate = curve.GetMortalityByAge(_age);
     return _random.BooleanGenerator(1000, survivalRate);
 }