Exemplo n.º 1
0
        public EcosystemeCitadin(int maxNuisible, List <Nuisible> nuisibles, int ecosytemeLimX, int ecosytemeLimY)
        {
            Random aleatoire       = new Random();
            int    tempMaxNuisible = maxNuisible / 2;
            int    tempRat         = aleatoire.Next(0, tempMaxNuisible);
            int    tempPigeon      = aleatoire.Next(0, tempMaxNuisible);
            int    tempZombie      = 0;

            Ecosysteme.FactoryCreator(tempRat, tempPigeon, tempZombie, nuisibles);
            this.LimiteX = ecosytemeLimX;
            this.LimiteY = ecosytemeLimY;
        }
Exemplo n.º 2
0
        public EcosystemeUmbrellaCorp(int maxNuisible, List <Nuisible> nuisibles, int ecosytemeLimX, int ecosytemeLimY)
        {
            Random aleatoire       = new Random();
            int    tempMaxNuisible = maxNuisible / 4;
            int    tempRat         = aleatoire.Next(0, tempMaxNuisible);
            int    tempPigeon      = aleatoire.Next(0, tempMaxNuisible);

            int fiftyZombie = tempRat + tempPigeon;

            int tempRest   = maxNuisible - fiftyZombie - tempRat - tempPigeon;
            int alealRest  = aleatoire.Next(0, tempRest);
            int tempZombie = (tempRat + tempPigeon + alealRest);

            Ecosysteme.FactoryCreator(tempRat, tempPigeon, tempZombie, nuisibles);
            this.LimiteX = ecosytemeLimX;
            this.LimiteY = ecosytemeLimY;
        }
Exemplo n.º 3
0
        static void Main(string[] args)
        {
            // Initialisation des variables de parametrages
            List <Nuisible> nuisibles     = new List <Nuisible>();
            int             ecosytemeLimX = 100;
            int             ecosytemeLimY = 100;
            int             maxNuisible   = 200;
            int             nbTics        = 1000;

            // Initialisation de la variable random
            Random aleatoire = new Random();


            //Nuisible zombieLabo = new Zombie();
            //PigeonMutantDecorator monMutant = new PigeonMutantDecorator(zombieLabo);
            //var testMutant = monMutant.Force;
            //var ttestZombeLabo = zombieLabo;
            //Console.WriteLine(testMutant);


            // Choix du Type d'ecosysteme et generation des nuisibles
            Console.WriteLine("Pour initialiser la simulation veuillez choisir un type d'ecosysteme : Aleatoire, UmbrellaCorp ou Citadin");
            string chooseEcoType = Console.ReadLine();

            while (chooseEcoType != "Aleatoire" && chooseEcoType != "UmbrellaCorp" && chooseEcoType != "Citadin")
            {
                Console.WriteLine("Desoler type d'ecosysteme : " + chooseEcoType + " n'existe pas :/ ");
                Console.WriteLine("Veuillez choisir le type d'ecosysteme parmi ceux proposer ci-dessus!");
                Console.WriteLine();
                chooseEcoType = Console.ReadLine();
                Console.WriteLine("\n");
            }

            // Initialisation de l'ecosysteme en fonction du choix
            Ecosysteme.InitEcoSysteme(chooseEcoType, maxNuisible, nuisibles, ecosytemeLimX, ecosytemeLimY);


            Console.WriteLine("\n");
            Console.WriteLine("--------------------------------- ");
            Console.WriteLine("-- Debut de l'initialisation des positions -- ");
            Console.WriteLine("--------------------------------- ");
            Console.WriteLine("\n");


            // initialisation des positions et des ID pour chaque nuisible present dans la liste
            int i = 0;

            foreach (Nuisible nuisible in nuisibles)
            {
                i = i + 1;
                int minPos  = 0;
                int maxPosX = ecosytemeLimX + 1;
                int maxPosY = ecosytemeLimY + 1;
                int tempx   = aleatoire.Next(minPos, maxPosX);
                int tempy   = aleatoire.Next(minPos, maxPosY);
                nuisible.PositionX = tempx;
                nuisible.PositionY = tempy;
                nuisible.ID        = i;
                string tempChildClass = nuisible.GetChildClass();
                Console.WriteLine("--------------------------------- ");
                Console.WriteLine("La position initial du " + tempChildClass + " ayant pour ID : " + nuisible.ID + " est : " + nuisible.PositionX + "X" + nuisible.PositionY + "Y");
            }

            Console.WriteLine("\n");
            Console.WriteLine("--------------------------------- ");
            Console.WriteLine("-- Fin de l'initialisation des positions -- ");
            Console.WriteLine("--------------------------------- ");
            Console.WriteLine("\n");

            Console.ReadLine();
            Console.WriteLine("--------------------------------- ");
            Console.WriteLine("-- Debut de la simulation -- ");
            Console.WriteLine("--------------------------------- ");

            /// BOUCLE D'EVOLUTION DE L'ECOSYSTEME
            for (int z = 0; z < nbTics; z++)
            {
                Console.WriteLine("\n");
                Console.WriteLine("--------------------------------- ");
                Console.WriteLine("-- Debut des deplacement des nuisibles pour ce tour -- ");
                Console.WriteLine("--------------------------------- ");
                Console.WriteLine("\n");

                // Deplacement aleatoire des nuisibles
                Nuisible.Deplacement(ecosytemeLimX, ecosytemeLimY, nuisibles);


                Console.WriteLine("\n");
                Console.WriteLine("--------------------------------- ");
                Console.WriteLine("-- Fin des deplacement des nuisibles pour ce tour -- ");
                Console.WriteLine("--------------------------------- ");
                Console.WriteLine("\n");


                Console.WriteLine("\n");
                Console.WriteLine("--------------------------------- ");
                Console.WriteLine("-- Debut des evenements -- ");
                Console.WriteLine("--------------------------------- ");
                Console.WriteLine("\n");


                // Collisions entre les nuisibles application de la methode adapte a chaque situation
                Nuisible.TestCollision(nuisibles);

                Console.WriteLine("\n");
                Console.WriteLine("--------------------------------- ");
                Console.WriteLine("-- Fin des evenements -- ");
                Console.WriteLine("--------------------------------- ");
                Console.WriteLine("\n");



                Console.WriteLine("\n");
                Console.WriteLine("--------------------------------- ");
                Console.WriteLine("-- Etat de l'ecosysteme a la fin de ce tour -- ");
                Console.WriteLine("--------------------------------- ");
                Console.WriteLine("\n");

                // Lecture du tableau nuisble
                foreach (Nuisible nuisible in nuisibles)
                {
                    string tempClass = nuisible.GetChildClass();
                    Console.WriteLine("--------------------------------- ");
                    Console.WriteLine("Le Nuisible d'ID : " + nuisible.ID + " est un " + tempClass + " son etat actuel est : " + nuisible.Etat);

                    //Console.WriteLine("La position final de " + nuisible.ID + " est : " + nuisible.PositionX + "X" + nuisible.PositionY + "Y  ayant pour orientation " + orientation + " et se deplace a une vitesse de " + nuisible.VitesseDeplacement);
                }

                Console.WriteLine("\n");
                int affichTour = z + 1;
                Console.WriteLine("Vous venez de terminer le tour numero : " + affichTour);
                //Console.ReadLine();
            }

            Console.WriteLine("--------------------------------- ");
            Console.WriteLine("-- Fin de la simulation -- ");
            Console.WriteLine("--------------------------------- ");

            Console.ReadLine();
        }