static Rabbit SpawnRabbit(int count) { var rabbit = new Rabbit($"Rabbit{count:D2}", 0); return(rabbit); }
public (int years, int population) ExponentialGrowth(int maxPopulation) { // string LogFile = "Log.txt"; //var s = new Stopwatch(); int proCreationAge = 3; int count = 0; int iterationCount = 0; //s.Start(); while (Rabbits.Count < maxPopulation) { if (count == 0) { Rabbits.Add(SpawnRabbit(count)); count++; } else { int cycles = Rabbits.Count; for (int i = 0; i < cycles; i++) { Rabbits[i].Age++; if (Rabbits[i].Age >= proCreationAge) { if (Rabbits.Count < maxPopulation) { Rabbit r = SpawnRabbit(count); Rabbits.Add(r); createRabbit(); //File.WriteAllText(LogFile, $"New Rabbit Called {r.Name}, Born at {DateTime.Now} {Environment.NewLine}"); count++; } else { Console.WriteLine("LIMIT HAS BEEN REACHED"); //s.Stop(); break; } } } } iterationCount += (maxPopulation != Rabbits.Count) ? 1 : 0; } //foreach (Rabbit r in Rabbits) //{ // Console.WriteLine($"Name: {r.Name}, Age: {r.Age}"); //} //Console.WriteLine(File.ReadAllText(LogFile)); //Console.WriteLine($"{iterationCount} Iterations Taken \n\n"); //Console.WriteLine($"Total time elapsed: {s.ElapsedMilliseconds}ms"); return(iterationCount, Rabbits.Count); }