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(); } }
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(); }
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(); }