private Mariposa CrossOver(Mariposa p1, Mariposa p2) { int antena = p1.Genotipo[0]; int espiritrompa = p1.Genotipo[1]; int color = p2.Genotipo[2]; int forma = p2.Genotipo[3]; int tam = p2.Genotipo[4]; return(new Mariposa(antena, espiritrompa, color, forma, tam)); }
private void SeleccionPadres() { for (int i = 0; i < _poblacion.Count; i += 2) { Mariposa p1 = _poblacion.ElementAt(i); Mariposa p2 = _poblacion.ElementAt(i + 1); Mariposa h1 = CrossOver(p1, p2); Mariposa h2 = CrossOver(p2, p1); _poblacionHijos.Add(h1); _poblacionHijos.Add(h2); } }
static void Main(string[] args) { // Animal unAnimal = new Animal(); No se puede porque Animal es clase abstracta Paloma unaPaloma = new Paloma("Blanquita"); Tigre unTigre = new Tigre("Tiger"); Aguila unAguila = new Aguila("Mágica"); Mariposa unaMariposa = new Mariposa("una mariposa"); List <Animal> animales = new List <Animal>(); animales.Add(unaPaloma); animales.Add(unTigre); animales.Add(unAguila); animales.Add(unaMariposa); // unaPaloma.Desplazarse(); // unTigre.Desplazarse(); // unAguila.Desplazarse(); foreach (Animal cadaAnimal in animales) { Console.WriteLine(cadaAnimal.GetType().ToString()); cadaAnimal.Desplazarse(); } Console.WriteLine("\n===========================================================\n\n"); Avion unAvion = new Avion(); List <IObjVolador> voladores = new List <IObjVolador>(); voladores.Add(unAvion); voladores.Add(unaPaloma); // voladores.Add(unTigre); un Tigre no implementa la interfaz IObjVolador por lo tanto no puede ser refereciando por ella voladores.Add(unAguila); voladores.Add(unaMariposa); foreach (IObjVolador cadaVolador in voladores) { Console.WriteLine(cadaVolador.GetType().ToString()); cadaVolador.Volar(); } Console.ReadKey(); }