public Model(int seed, int m) { this.seed = seed; this.meses_a_simular = m; bitmonlandia = new Bitmonlandia(seed); tablero = bitmonlandia.GetMapa().GetTablero(); }
// Reproduccion de Bitmons public virtual void Reproduccion(Bitmon pareja, int size, Bitmonlandia bitmonlandia) { }
/* Reproduccion de Bitmons consiste en que si la pareja es compatible, se instancia dentro de la lista de Bitmons * un nuevo Bitmon de una especie aleatoria */ public override void Reproduccion(Bitmon pareja, int size, Bitmonlandia bitmonlandia) { if (pareja.GetNombre() == "Gofue" || pareja.GetNombre() == "Dorvalo" || pareja.GetNombre() == "Doti") { tiempo_De_Vida += (tiempo_De_Vida * 3) / 10; pareja.SetTiempoDeVida(pareja.GetTiempoDeVida() + (pareja.GetTiempoDeVida() * 3) / 10); int c1 = random.Next(size); // Asignacion de una coordenada aleatoria int c2 = random.Next(size); // Asignacion de una coordenada aleatoria //Veo si el bitmon caera fuera de los limites del mapa: int cont_de_escape = 0; while (bitmonlandia.GetMapa().GetTablero()[c1, c2, 1] != " " && bitmonlandia.GetMapa().GetTablero()[c1, c2, 2] != " ") { //condicion de escape if (cont_de_escape > 20) { return; } c1 = random.Next(size); // Asignacion de una coordenada aleatoria c2 = random.Next(size); // Asignacion de una coordenada aleatoria cont_de_escape++; } int[] tupla = { c1, c2 }; //Estadisticas int pa = random.Next(10, ((puntos_De_Ataque + pareja.GetPuntosDeAtaque()) / 2)); int pv = random.Next(10, ((puntos_De_Vida + pareja.GetPuntosDeVida()) / 2)); //Veamos la cantidad de hijos que han tenido ambos int hijos_padre = hijos; int hijos_pareja = pareja.GetHijos(); string especie_hijo = ""; int probabilidad = random.Next(0, 101); if (hijos_padre > hijos_pareja) { if (probabilidad <= 70) { especie_hijo = tipo_De_Bitmon; } else { especie_hijo = pareja.GetNombre(); } } else if (hijos_padre < hijos_pareja) { if (probabilidad <= 70) { especie_hijo = pareja.GetNombre(); } else { especie_hijo = tipo_De_Bitmon; } } else { if (probabilidad <= 50) { especie_hijo = pareja.GetNombre(); } else { especie_hijo = tipo_De_Bitmon; } } switch (especie_hijo) { case "Gofue": bitmonlandia.añadir_bitmon(new Gofue("Gofue", 15, pa, pv, tupla)); break; case "Dorvalo": bitmonlandia.añadir_bitmon(new Dorvalo("Dorvalo", 20, pa, pv, tupla)); break; case "Doti": bitmonlandia.añadir_bitmon(new Doti("Doti", 30, pa, pv, tupla)); break; } Console.WriteLine("Ha nacido un {0}", especie_hijo); hijos += 1; pareja.SetHijos(); } }