コード例 #1
0
        public void PasserJournee()
        {
            Console.WriteLine($"Jour {jourActuel}:");
            Console.WriteLine();
            foreach (Poisson poisson in listePoissons)
            {
                Console.WriteLine($"    - {poisson.nom}, est un(e) {poisson.race} de sexe {poisson.sexe}, agé(e) de {poisson.age} jours. PV: {poisson.pv}.");
            }
            Console.WriteLine();
            Console.WriteLine($"Il y a {nbAlgues} algues dans l'aquarium.");

            Console.ReadKey();

            Console.WriteLine();

            foreach (Poisson poisson in listePoissons)
            {
                if (poisson.pv <= 5)
                {
                    if (poisson is Carnivore)
                    {
                        int     indicePoissonMange = GenererAlea.AutreAlea(nbPoissons);
                        Poisson poissonMange       = listePoissons[indicePoissonMange - 1];

                        while (!poissonMange.estVivant)
                        {
                            indicePoissonMange = GenererAlea.AutreAlea(nbPoissons);
                            poissonMange       = listePoissons[indicePoissonMange - 1];
                        }

                        if (poisson == poissonMange)
                        {
                            Console.WriteLine($"- {poisson.nom} ne peut pas se manger...");
                        }

                        else if (poisson is Merou && poissonMange is Merou)
                        {
                            Console.WriteLine($"- {poisson.nom} ne peut pas manger un poisson de son espèce.");
                        }

                        else if (poisson is Thon && poissonMange is Thon)
                        {
                            Console.WriteLine($"- {poisson.nom} ne peut pas manger un poisson de son espèce.");
                        }

                        else if (poisson is PoissonClown && poissonMange is PoissonClown)
                        {
                            Console.WriteLine($"- {poisson.nom} ne peut pas manger un poisson de son espèce.");
                        }

                        else if (poisson.estVivant && nbPoissons > 1)
                        {
                            poisson.Manger(poissonMange);
                            int poissonMangeMauvais = GenererAlea.AutreAlea(70);
                            if (poissonMangeMauvais == 35)
                            {
                                Console.WriteLine($"    - {poissonMange.nom} n'a pas été digéré... {poisson.nom} perd la vie...");
                                poisson.estVivant = false;
                            }
                        }
                        else
                        {
                            Console.WriteLine($"- {poisson.nom} est mort...");
                        }
                    }
                    else
                    {
                        if (nbAlgues > 0 && poisson.estVivant)
                        {
                            int   indiceAlgueMangee = GenererAlea.AutreAlea(nbAlgues);
                            Algue algueMangee       = listeAlgues[indiceAlgueMangee - 1];
                            while (!algueMangee.estVivant)
                            {
                                indiceAlgueMangee = GenererAlea.AutreAlea(nbAlgues);
                                algueMangee       = listeAlgues[indiceAlgueMangee - 1];
                            }
                            poisson.Manger(algueMangee);
                            int algueMauvaise = GenererAlea.AutreAlea(100);
                            if (algueMauvaise == 50)
                            {
                                Console.WriteLine($"    - L'algue n'a pas été digérée... {poisson.nom} perd la vie...");
                                poisson.estVivant = false;
                            }
                        }
                        else if (nbAlgues > 0 && !poisson.estVivant)
                        {
                            Console.WriteLine($"- {poisson.nom} est mort...");
                        }
                        else
                        {
                            Console.WriteLine($"- {poisson.nom} n'a pas pu manger (plus d'algue).");
                        }
                    }
                }
                else if (poisson.pv > 5)
                {
                    int faimAlea = GenererAlea.AutreAlea(3);
                    if (faimAlea == 1)
                    {
                        if (poisson is Carnivore)
                        {
                            int     indicePoissonMange = GenererAlea.AutreAlea(nbPoissons);
                            Poisson poissonMange       = listePoissons[indicePoissonMange - 1];

                            while (!poissonMange.estVivant)
                            {
                                indicePoissonMange = GenererAlea.AutreAlea(nbPoissons);
                                poissonMange       = listePoissons[indicePoissonMange - 1];
                            }

                            if (poisson == poissonMange)
                            {
                                Console.WriteLine($"- {poisson.nom} ne peut pas se manger...");
                            }

                            else if (poisson is Merou && poissonMange is Merou)
                            {
                                Console.WriteLine($"- {poisson.nom} ne peut pas manger un poisson de son espèce.");
                            }

                            else if (poisson is Thon && poissonMange is Thon)
                            {
                                Console.WriteLine($"- {poisson.nom} ne peut pas manger un poisson de son espèce.");
                            }

                            else if (poisson is PoissonClown && poissonMange is PoissonClown)
                            {
                                Console.WriteLine($"- {poisson.nom} ne peut pas manger un poisson de son espèce.");
                            }

                            else if (poisson.estVivant && nbPoissons > 1)
                            {
                                poisson.Manger(poissonMange);
                                int poissonMangeMauvais = GenererAlea.AutreAlea(70);
                                if (poissonMangeMauvais == 35)
                                {
                                    Console.WriteLine($"    - {poissonMange.nom} n'a pas été digéré... {poisson.nom} perd 9 PV...");
                                    poisson.pv -= 9;
                                }
                                Console.WriteLine($"    {poisson.nom} n'avait pas trop faim, il perd 1 PV.");
                                poisson.pv--;
                            }
                            else
                            {
                                Console.WriteLine($"- {poisson.nom} est mort...");
                            }
                        }
                        else
                        {
                            if (nbAlgues > 0 && poisson.estVivant)
                            {
                                int   indiceAlgueMangee = GenererAlea.AutreAlea(nbAlgues);
                                Algue algueMangee       = listeAlgues[indiceAlgueMangee - 1];
                                while (!algueMangee.estVivant)
                                {
                                    indiceAlgueMangee = GenererAlea.AutreAlea(nbAlgues);
                                    algueMangee       = listeAlgues[indiceAlgueMangee - 1];
                                }
                                poisson.Manger(algueMangee);
                                int algueMauvaise = GenererAlea.AutreAlea(100);
                                if (algueMauvaise == 50)
                                {
                                    Console.WriteLine($"    - L'algue n'a pas été digérée... {poisson.nom} perd 7 PV...");
                                    poisson.pv -= 7;
                                }
                                Console.WriteLine($"    - {poisson.nom} a mangé alors qu'il n'avait plus faim. Il perd 1 PV.");
                                poisson.pv--;
                            }
                            else if (nbAlgues > 0 && !poisson.estVivant)
                            {
                                Console.WriteLine($"- {poisson.nom} est mort...");
                            }
                            else
                            {
                                Console.WriteLine($"- {poisson.nom} n'a pas pu manger (plus d'algue).");
                            }
                        }
                    }
                    else
                    {
                        Console.WriteLine($"- {poisson.nom} n'a pas faim.");
                    }
                }
                else
                {
                    Console.WriteLine($"- {poisson.nom} n'a pas faim.");
                }

                int     aleaPoissonRepro = GenererAlea.AutreAlea(nbPoissons);
                Poisson poissonRepro     = listePoissons[aleaPoissonRepro - 1];
                if (poisson == poissonRepro)
                {
                    Console.WriteLine($"    - {poisson.nom} n'a pas pu se reproduire.");
                }
                else
                {
                    int chanceRepro = GenererAlea.AutreAlea(2);
                    if (chanceRepro == 1)
                    {
                        bool oeuf = poisson.SeReproduire(poissonRepro);
                        if (oeuf)
                        {
                            int nbBebesPoissons = GenererAlea.AutreAlea(5);
                            Console.WriteLine($"    - {poisson.nom} s'est reproduit avec {poissonRepro.nom} et a eu {nbBebesPoissons} petits.");
                            for (int i = 0; i < nbBebesPoissons; i++)
                            {
                                if (poisson.race == "Bar")
                                {
                                    Poisson bebe = new Bar("bar");
                                    listeBebesPoissons.Add(bebe);
                                    Console.Write($"- Nommez votre nouveau {bebe.race} qui est un(e) {bebe.sexe}: ");
                                    string nomBebe = Console.ReadLine();
                                    bebe.NommerPoisson(nomBebe);
                                }
                                else if (poisson.race == "Carpe")
                                {
                                    Poisson bebe = new Bar("Carpe");
                                    listeBebesPoissons.Add(bebe);
                                    Console.Write($"- Nommez votre nouveau {bebe.race} qui est un(e) {bebe.sexe}: ");
                                    string nomBebe = Console.ReadLine();
                                    bebe.NommerPoisson(nomBebe);
                                }
                                else if (poisson.race == "Merou")
                                {
                                    Poisson bebe = new Bar("Merou");
                                    listeBebesPoissons.Add(bebe);
                                    Console.Write($"- Nommez votre nouveau {bebe.race} qui est un(e) {bebe.sexe}: ");
                                    string nomBebe = Console.ReadLine();
                                    bebe.NommerPoisson(nomBebe);
                                }
                                else if (poisson.race == "Poisson-Clown")
                                {
                                    Poisson bebe = new Bar("Poisson-Clown");
                                    listeBebesPoissons.Add(bebe);
                                    Console.Write($"- Nommez votre nouveau {bebe.race} qui est un(e) {bebe.sexe}: ");
                                    string nomBebe = Console.ReadLine();
                                    bebe.NommerPoisson(nomBebe);
                                }
                                else if (poisson.race == "Sole")
                                {
                                    Poisson bebe = new Bar("Sole");
                                    listeBebesPoissons.Add(bebe);
                                    Console.Write($"- Nommez votre nouveau {bebe.race} qui est un(e) {bebe.sexe}: ");
                                    string nomBebe = Console.ReadLine();
                                    bebe.NommerPoisson(nomBebe);
                                }
                                else
                                {
                                    Poisson bebe = new Thon("Thon");
                                    listeBebesPoissons.Add(bebe);
                                    Console.Write($"- Nommez votre nouveau {bebe.race} qui est un(e) {bebe.sexe}: ");
                                    string nomBebe = Console.ReadLine();
                                    bebe.NommerPoisson(nomBebe);
                                }
                            }
                        }
                        else
                        {
                            Console.WriteLine($"    - {poisson.nom} n'a pas pu se reproduire avec {poissonRepro.nom}.");
                        }
                    }
                    else
                    {
                        Console.WriteLine($"    - {poisson.nom} n'a pas réussi à se reproduire avec {poissonRepro.nom}.");
                    }
                }
            }

            foreach (Poisson poisson in listePoissons)
            {
                poisson.pv--;
                poisson.Mourir();

                if (!poisson.estVivant)
                {
                    nbPoissons--;
                }
                else
                {
                    poisson.age++;
                    poisson.jourDerniereRepro++;
                }
            }
            foreach (Algue algue in listeAlgues)
            {
                algue.Mourir();
                if (!algue.estVivant)
                {
                    nbAlgues--;
                }
                else
                {
                    if (jourActuel % 2 == 0)
                    {
                        algue.Grandir();
                    }
                    algue.age++;
                    bool algueRepro = algue.SeReproduire();
                    if (algueRepro == true)
                    {
                        algue.pv = (algue.pv / 2);
                        Algue newAlgue = new Algue()
                        {
                            pv = algue.pv
                        };
                        listeNewAlgues.Add(newAlgue);
                    }
                }
            }

            listePoissons.RemoveAll(poisson => !poisson.estVivant);
            listeAlgues.RemoveAll(algue => !algue.estVivant);

            int nbNewPoissons = 0;

            foreach (Poisson bebe in listeBebesPoissons)
            {
                listePoissons.Add(bebe);
                nbPoissons++;
                nbNewPoissons++;
            }

            listeBebesPoissons.RemoveAll(poisson => poisson.estVivant);

            int nbNewAlgues = 0;

            foreach (Algue nouvelleAlgue in listeNewAlgues)
            {
                listeAlgues.Add(nouvelleAlgue);
                nbAlgues++;
                nbNewAlgues++;
            }

            listeNewAlgues.RemoveAll(algue => algue.estVivant);

            Console.WriteLine();

            foreach (Poisson poisson in listePoissons)
            {
                if ((poisson.race == "Bar" || poisson.race == "Merou") && poisson.age >= 10)
                {
                    poisson.sexe = "Femelle";
                    Console.WriteLine($"        - {poisson.nom} a changé de sexe.");
                }
            }

            Console.WriteLine();

            Console.WriteLine($"En fin de journée, il y a eu {nbNewPoissons} petit(s) et {nbNewAlgues} nouvelle(s) algue(s).");

            Console.WriteLine();

            Console.Write("Souhaitez-vous acheter des poissons? (0: Oui - Autre entrée: Non) ");
            string choix = Console.ReadLine();

            if (choix == "0")
            {
                AcheterPoissons();
            }
            Console.WriteLine();
            Console.Write("Souhaitez-vous acheter des algues? (0: Oui - Autre entrée: Non) ");
            string choix2 = Console.ReadLine();

            if (choix2 == "0")
            {
                AcheterAlgues();
            }
            Console.WriteLine();

            Console.Write("Souhaitez-vous voir l'état de vos algues? (0: Oui - Autre entrée: Non) ");
            string choix3 = Console.ReadLine();

            if (choix3 == "0")
            {
                Console.WriteLine();
                int i = 1;
                foreach (Algue algue in listeAlgues)
                {
                    Console.WriteLine($"            - Algues n°{i} - Age: {algue.age}, Pv restant(s): {algue.pv}.");
                    i++;
                }
            }
            Console.WriteLine();

            jourActuel++;

            Console.ReadKey();

            Console.Clear();
        }
コード例 #2
0
 //pour Achat.
 public Algue(int age)
 {
     this.age  = age;
     estVivant = true;
     pv        = GenererAlea.AutreAlea(10 + (age / 2));
 }