Example #1
0
        static void Main(string[] args)
        {
            List <AnimalDuZoo> mesAnimauxDuZoo = new List <AnimalDuZoo>();

            mesAnimauxDuZoo.Add(new Lapin());
            mesAnimauxDuZoo.Add(new Lapin());
            mesAnimauxDuZoo.Add(new Lion());
            mesAnimauxDuZoo.Add(new Perroquet());

            /******************* le feu arrive, il faut deplacer tout le monde *********************/

            foreach (AnimalDuZoo a in mesAnimauxDuZoo)
            {
                a.SeDeplacer();
            }

            /**************************  il faut mettre un peu d'ordre dans l'evacuation...du plus vieux au plus jeune ********************/

            List <AnimalDuZoo> lesAnimaux = new List <AnimalDuZoo>();

            lesAnimaux.Add(new Lapin(DateTime.Parse("2018/06/10"), true));
            lesAnimaux.Add(new Lapin(DateTime.Parse("2015/07/10"), true));
            lesAnimaux.Add(new Lion(DateTime.Parse("2010/06/10"), true));
            lesAnimaux.Add(new Perroquet(DateTime.Parse("2017/06/10"), true));


            Console.WriteLine("\n");
            Console.WriteLine("Liste des animaux avant les trier ");
            Console.WriteLine("======================================== \n");
            foreach (AnimalDuZoo anim in lesAnimaux)
            {
                Console.WriteLine($"{anim.GetType().Name} :\n\t" +
                                  $"date de naissance -> {anim.dateDeNaissance} \n\t" +
                                  $"s'il est né au zoo -> {anim.estNeeAuZoo} \n\t"
                                  );
            }


            lesAnimaux.Sort();
            // lesAnimaux.Reverse();
            Console.WriteLine("\n");
            Console.WriteLine("L'ordre de deplacement parraport l'age ");
            Console.WriteLine("======================================== \n");

            foreach (AnimalDuZoo anim in lesAnimaux)
            {
                Console.WriteLine($"{anim.GetType().Name} :\n\t" +
                                  $"date de naissance -> {anim.dateDeNaissance} \n\t" +
                                  $"s'il est né au zoo -> {anim.estNeeAuZoo} \n\t"
                                  );
            }



            /****************** mais que fait le gardien? il reste sur place? ***************************/

            Gardien gardien = new Gardien();

            if (gardien.SeDeplacer())
            {
                Console.WriteLine("Garien ne rest pas sur place");
            }


            /********************** et qui va appeller les secours? ********************/

            Gardien gardien1 = new Gardien();

            if (gardien1.Parler())
            {
                Console.WriteLine("Garien appele les secours");
            }

            List <IParler> parlant = new List <IParler>();

            parlant.Add(gardien1);
            parlant.Add(new Perroquet());

            foreach (IParler parleur in parlant)
            {
                parleur.Parler();
            }
        }
Example #2
0
        static void Main(string[] args)
        {
            List <AnimalDuZoo> mesAnimauxDuZoo = new List <AnimalDuZoo>();

            mesAnimauxDuZoo.Add(new Lapin(new DateTime(1994, 07, 21), true));
            mesAnimauxDuZoo.Add(new Lapin(new DateTime(1990, 07, 20), true));
            mesAnimauxDuZoo.Add(new Lion(new DateTime(1991, 06, 08), true));
            mesAnimauxDuZoo.Add(new Perroquet(new DateTime(2019, 03, 25), true));

            Gardien georges = new Gardien();

            //le feu arrive, il faut deplacer tout le monde

            Console.WriteLine("Le feu arrive :");
            Console.WriteLine("            .  '   .   '  .  '  .");
            Console.WriteLine("   (    , )       (.   )  (   ',    )");
            Console.WriteLine("    .' ) ( . )    ,  ( ,     )   ( .");
            Console.WriteLine(" ). , ( .   (  ) ( , ')  .' (  ,    )");
            Console.WriteLine("(_,) . ), ) _) _,')  (, ) '. )  ,. (' )");
            Console.WriteLine("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");

            foreach (AnimalDuZoo a in mesAnimauxDuZoo)
            {
                a.SeDeplacer();
            }

            //il faut mettre un peu d'ordre dans l'evacuation...du plus vieux au plus jeune

            Console.WriteLine("Du plus vieux au plus jeune :");
            mesAnimauxDuZoo.Sort();

            foreach (AnimalDuZoo a in mesAnimauxDuZoo)
            {
                a.SeDeplacer();
            }

            //mais que fait le gardien? il reste sur place?

            // liste IDeplacable contenant les IDeplacables : les animaux du zoo et le gardien
            List <IDeplacable> mesIdeplacables = new List <IDeplacable>();

            mesIdeplacables.Add(georges);
            mesIdeplacables.AddRange(mesAnimauxDuZoo);

            Console.WriteLine("Mais que fait le gardien ?");
            //deplace les animaux et le gardien
            foreach (IDeplacable d in mesIdeplacables)
            {
                d.SeDeplacer();
            }

            //et qui va appeller les secours?

            // liste IParlable contenant les Iparlables : le perroquet et le gardien
            Console.WriteLine("Et qui va appeller les secours ?");
            List <IParlable> mesIparlables = new List <IParlable>();

            foreach (AnimalDuZoo a in mesAnimauxDuZoo)
            {
                if (a is IParlable) // si l'animal est IParlable
                {
                    mesIparlables.Add((IParlable)a);
                }
            }
            mesIparlables.Add(georges);
            // demande aux Iparlables d'appeller les secours
            foreach (IParlable p in mesIparlables)
            {
                p.Parler();
            }

            Console.WriteLine("Tous le monde est sauvé :D");
            Console.ReadLine();
        }
Example #3
0
        static void Main(string[] args)
        {
            List <IParler>     mesParleurs     = new List <IParler>();
            List <IDeplacable> monZoo          = new List <IDeplacable>();
            List <AnimalDuZoo> mesAnimauxDuZoo = new List <AnimalDuZoo>();

            mesAnimauxDuZoo.Add(new Lapin(new DateTime(1994, 07, 21), true));
            mesAnimauxDuZoo.Add(new Lapin(new DateTime(1990, 07, 20), true));
            mesAnimauxDuZoo.Add(new Lion(new DateTime(1991, 06, 08), true));
            mesAnimauxDuZoo.Add(new Perroquet(new DateTime(2019, 03, 25), true));
            Gardien georges = new Gardien();

            monZoo.Add(georges);
            foreach (AnimalDuZoo a in mesAnimauxDuZoo)
            {
                monZoo.Add(a);
            }
            foreach (AnimalDuZoo a in mesAnimauxDuZoo)
            {
                if (a is IParler)
                {
                    mesParleurs.Add((IParler)a);
                }
            }

            mesParleurs.Add(georges);

            //le feu arrive, il faut deplacer tout le monde
            foreach (AnimalDuZoo a in mesAnimauxDuZoo)
            {
                a.SeDeplacer();
            }



            //il faut mettre un peu d'ordre dans l'evacuation...du plus vieux au plus jeune


            mesAnimauxDuZoo.Sort();

            foreach (AnimalDuZoo a in mesAnimauxDuZoo)
            {
                a.SeDeplacer();
            }

            //mais que fait le gardien? il reste sur place?

            foreach (IDeplacable d in monZoo)
            {
                d.SeDeplacer();
            }

            //et qui va appeller les secours?


            //foreach (AnimalDuZoo a in mesAnimauxDuZoo)
            //{
            //    a.Parler();
            //}
            //georges.Parler();
            foreach (IParler p in mesParleurs)
            {
                p.Parler();
            }


            Console.ReadLine();
        }