private void NextPlayer() { DrawingHelper.ClearCache(); var nextPlayerIndex = CurrentSpecie.Genomes.IndexOf(CurrentPlayer) + 1; if (nextPlayerIndex != CurrentSpecie.Genomes.Count) { CurrentPlayer = CurrentSpecie.Genomes[nextPlayerIndex]; return; } var nextSpecieIndex = Species.IndexOf(CurrentSpecie) + 1; if (nextSpecieIndex != Species.Count) { CurrentSpecie = Species[nextSpecieIndex]; CurrentPlayer = CurrentSpecie.Genomes.First(); return; } NextGeneration(); CurrentSpecie = Species.First(); CurrentPlayer = CurrentSpecie.Genomes.First(); }