/// <summary> /// Gives account of how things started this turn. Output to console /// </summary> public void InitialDisplay() { int FishesCount, AlgaeCount; // using Linq //FishesCount = Organisms.Count(organism => organism is Fish); //AlgaeCount = Organisms.Count(organism => organism is Alga); // using custom method FishesCount = PseudoLink <Organism, Fish> .Count(Organisms); AlgaeCount = PseudoLink <Organism, Alga> .Count(Organisms); List <Organism> AliveOrganisms = PseudoLink <Organism> .GetIf(Organisms, IsOrganismAlive); string str = string.Format("There are currently {0} fishes and {1} algae in the aquarium.:\n", PseudoLink <Organism, Fish> .Count(Organisms), PseudoLink <Organism, Alga> .Count(Organisms)); Console.WriteLine(str); WriteToFile(str); str = string.Format("{0} of these organisms are alive", AliveOrganisms.Count()); Console.WriteLine(str); WriteToFile(str); }
/// <summary> /// Gives account of aquarium's state at end of turn. Output to console. /// </summary> public void StatusDisplay() { List <Organism> ListFish = new List <Organism>(); ListFish = PseudoLink <Organism, Fish> .GetSubset(Organisms); ListFish = PseudoLink <Organism> .GetIf(ListFish, IsOrganismAlive); string str = string.Format("At the end of turn {0}. {1} fishes alive. {2} algae alive. Still alive:", turn, PseudoLink <Organism> .GetCountWhen(ListFish, IsOrganismAlive), PseudoLink <Organism> .GetCountWhen((PseudoLink <Organism, Alga> .GetSubset(Organisms)), IsOrganismAlive)); Console.WriteLine(str); WriteToFile(str); foreach (Fish fish in ListFish) { Console.WriteLine(" {0},", fish.Name); } ++turn; }