public static void Simuleer(List <Mens> testlijst, int gentest = 5) { for (int i = 0; i < gentest; i++) { List <Mens> deKribbe = new List <Mens>(); foreach (var mens in testlijst) { int partner = r.Next(0, testlijst.Count); Mens babynew = mens.Plantvoort(testlijst[partner]); if (babynew != null) { deKribbe.Add(babynew); } } testlijst.AddRange(deKribbe);//nadat alle babys zijn gemaakt en in deKribbe lijst zijn geplaats -> deze lijst aan de bestaande toevoegen } //Statistieken verkrijgen GenereerStats(testlijst, gentest); //effe in commentaar om niet iedereen te tonen //foreach (var mens in testlijst) //{ // mens.ToonMens(); //} }
static void Main(string[] args) { List <Mens> mensen = new List <Mens>(); for (int i = 0; i < 10; i++) { mensen.Add(new Mens(Geslacht.Vrouw)); } for (int i = 0; i < 10; i++) { mensen.Add(new Mens(Geslacht.Man)); } Mens.Simuleer(mensen); /*foreach (var mens in mensen) * { * mens.ToonMens(); * } * * Mens baby; * baby = mensen[0].Plantvoort(mensen[11]);//kind van 1ste vrouw met laatste man * * Console.WriteLine("\n"); * Console.Write("Baby: "); baby.ToonMens();*/ }
public Mens Plantvoort(Mens man) { if (Geslacht == Geslacht.Vrouw && man.Geslacht == Geslacht.Man && this.Generatie == man.Generatie) //enkel vrouwen kunnen babys hebben en man parameter moet ook een man zijn //this hoeft er niet bij, je kan ook gewoon Generatie schrijven { double lengtekind = (man.MaxLengte + this.MaxLengte) / 2; //this betekent het object waarin we nu zitten Oogkleur oogkind = this.Oogkleur; if (r.Next(0, 2) == 0) { oogkind = man.Oogkleur;//50% kans op kleur ogen van vader } if (r.Next(0, 101) == 0) { oogkind = Oogkleur.Geel; } Geslacht g = Geslacht.Man; if (r.Next(0, 2) == 0) { g = Geslacht.Vrouw;//50% kans op vrouw } return(new Mens(oogkind, g, lengtekind, Generatie + 1)); } else { return(null);//als het een man is, kunnen geen kinderen baren } }