public override EtreVivantReproduction Reproduction(EtreVivantReproduction p_etreVivant) { Random aleatoire = new Random(); int SexeRandom = aleatoire.Next(0, 2); if (SexeRandom == 0) // Si masculin { int NomRandom = aleatoire.Next(1, EtreVivant.nomEtreVivantMasculin.Length); String nom = EtreVivant.nomEtreVivantMasculin[NomRandom]; Dauphin dauphinM = new Dauphin(nom, 2, "male"); return(dauphinM); } else //Sinon féminin { int NomRandom = aleatoire.Next(1, EtreVivant.nomEtreVivantFeminin.Length); String nom = EtreVivant.nomEtreVivantFeminin[NomRandom]; Dauphin dauphinF = new Dauphin(nom, 2, "femelle"); return(dauphinF); } }
public override EtreVivantReproduction Reproduction(EtreVivantReproduction p_etreVivant) { throw new NotImplementedException(); }
/// <summary> /// Fonction principale permettant de lancer le jeu /// </summary> public void Start() { int Choix = 0; int ChoixAleatoire; int nombreEtreVivant = 0; int nombreTuerReproduire = 0; int nombreTuerDivision = 0; int nombreTuer = 0; Random aleatoire = new Random(); Menu(); do { Choix = int.Parse(Console.ReadLine()); switch (Choix) { case 1: //Tuer for (int i = 0; i < 1; i++) // On ne tue que 1 etre vivant pour l'instant { //Génération d'un nombre aléatoire entre 1 et le nombre d'etre vivant nombreEtreVivant = m_listEtreVivantReproduction.Count + m_listEtreVivantDivision.Count; nombreTuer= nombreTuerDivision+ nombreTuerReproduire; //On génére un nouveau nombre aléatoire si etat = false et seulement si tous les etre ne sont pas déjà mort if (nombreTuer!=nombreEtreVivant) { int listRandom = aleatoire.Next(0, 2); if(listRandom==0 && nombreTuerReproduire != m_listEtreVivantReproduction.Count) { nombreTuerReproduire++; do { ChoixAleatoire = aleatoire.Next(0, m_listEtreVivantReproduction.Count); } while (m_listEtreVivantReproduction[ChoixAleatoire].Etat == false); // On boucle tant que l'être vivant choisit est déjà mort EtreVivant.Tuer(m_listEtreVivantReproduction[ChoixAleatoire]); Console.WriteLine($"{m_listEtreVivantReproduction[ChoixAleatoire].Nom} a ete tue. "); ShowEtrevivant(m_listEtreVivantReproduction, m_listEtreVivantDivision); } else if(listRandom == 1 && nombreTuerDivision != m_listEtreVivantDivision.Count) { nombreTuerDivision++; do { ChoixAleatoire = aleatoire.Next(0, m_listEtreVivantDivision.Count); } while (m_listEtreVivantDivision[ChoixAleatoire].Etat == false); EtreVivant.Tuer(m_listEtreVivantDivision[ChoixAleatoire]); Console.WriteLine($"{m_listEtreVivantDivision[ChoixAleatoire].Nom} a ete tue. "); ShowEtrevivant(m_listEtreVivantReproduction, m_listEtreVivantDivision); }else if(nombreTuerDivision >= m_listEtreVivantDivision.Count) Console.WriteLine("Impossible de tuer un etre vivant qui se divise, il ne reste plus personne!"); } else if(nombreTuer >= nombreEtreVivant) Console.WriteLine("Impossible de tuer un etre vivant, il ne reste plus personne!"); } break; case 2: //Reproduire int nombreEtreVivantReproduction = m_listEtreVivantReproduction.Count; int nombreEtreVivantDivision = m_listEtreVivantDivision.Count; for(int i = 0; i < 3; i++) // On essaye 3 reproduction { //Génération d'un nombre aléatoire int choixAleatoireReproduction1 = aleatoire.Next(1, nombreEtreVivantReproduction); int choixAleatoireReproduction2 = aleatoire.Next(1, nombreEtreVivantReproduction); int choixAleatoireDivision = aleatoire.Next(1, nombreEtreVivantDivision); if (m_listEtreVivantReproduction[choixAleatoireReproduction1].GetType() == m_george.GetType() || m_listEtreVivantReproduction[choixAleatoireReproduction2].GetType() == m_george.GetType()) Console.WriteLine("George ne peut pas se reproduire"); else if(m_listEtreVivantReproduction[choixAleatoireReproduction1].GetType() == m_listEtreVivantReproduction[choixAleatoireReproduction2].GetType()) { EtreVivantReproduction evr = m_listEtreVivantReproduction[choixAleatoireReproduction1].Reproduction(m_listEtreVivantReproduction[choixAleatoireReproduction2]); Console.WriteLine(evr); m_listEtreVivantReproduction.Add(evr); } else { Console.WriteLine($"La reproduction entre {m_listEtreVivantReproduction[choixAleatoireReproduction1].Nom} , et, {m_listEtreVivantReproduction[choixAleatoireReproduction2].Nom}, a échoué"); } EtreVivantDivision evd = m_listEtreVivantDivision[choixAleatoireDivision].Division(); m_listEtreVivantDivision.Add(evd); Console.WriteLine(""); } ShowEtrevivant(m_listEtreVivantReproduction, m_listEtreVivantDivision); break; case 3: Console.WriteLine("Fin Programme, Merci"); break; default: Console.WriteLine("Mauvaise Saisie veulliez réitérer"); Console.WriteLine(); break; } } while (Choix != 3); }
public abstract EtreVivantReproduction Reproduction(EtreVivantReproduction p_etreVivant);