예제 #1
0
        //fonction qui effectue les actions du jeu à chaque tour
        //parametre ecriture console définit si on écrit dans la console ou non
        //parametre fourmisMaximum donne le nombre maximum de fourmi
        public static void TourDeJeu(bool ecritureConsole, int fourmisMaximum)
        {
            while (!SimulationEstTerminee() && nbTours < 500) // on a mit une limite de 500 tours pour éviter les fichiers trop lourds
            {
                foreach (Case ca in RefTableau.tab)
                {
                    if (ca.fourmis != null)
                    {
                        ca.fourmis.sestDeplacee = false; //on parcours d'abord le tableau pour mettre le statut s'est déplacée des fourmis à faux
                    }
                }

                foreach (Case ca in RefTableau.tab)
                {
                    if (ca.fourmis != null && ca.fourmis.sestDeplacee == false)
                    {//on vérifie que les fourmi ne se sont pas encore déplacee puis on les fait se deplacer
                        ca.fourmis.sestDeplacee = true;
                        ca.fourmis.ChoixDeLaction();
                    }
                    if (ca.pheromone_sucre > 0) // si il y a des phéromones sucres on les décrémente (évaporation des phéromones)
                    {
                        ca.pheromone_sucre--;
                    }
                }
                if (ecritureConsole == true) // ici l'écriture dans la console de la grille
                {
                    Console.WriteLine();
                    Console.ReadKey();
                    Console.WriteLine();

                    string affichage = "";
                    affichage = Program.affichGrille(affichage);
                    Console.WriteLine(affichage);
                }

                nbTours++;
                if (nbTours % 2 == 0 && Fourmis.nbrFourmis < fourmisMaximum)
                {
                    RefTableau.classeTableau.InitFourmis();
                }

                FichierTxt.AjoutAuFichier();  //en commentaire pour dev
            }

            FichierTxt.AjoutFinDeFichier();
            // on créer le fichier texte à la fin
        }
예제 #2
0
        static void Main(string[] args)
        {
            //on propose une liste de choix à l'utilisateur
            Console.WriteLine("Choisissez une méthode de génération (tapez le chiffre puis entrer): \n" +
                              "1.Créer la simulation et l'afficher dans un navigateur web\n" +
                              "2.Créer la simulation et l'afficher dans la console\n" +
                              "3.Créer le fichier TXT uniquement\n");

            int reponse = ChoixParametres(1, 3);



            if (reponse == 3)
            {
                FichierTxt.ChoixFolderFichierTxt();
            }
            else
            {
                FichierTxt.InitialisationFichierTexte();
            }


            Console.WriteLine("1. Génération de la simulation par défaut \n2. Génération personnalisée");
            int generation = ChoixParametres(1, 2);
            int tailleX;
            int tailleY;
            int nombreFourmis;
            int nombreSucre;
            int nombreCailloux;

            if (generation == 1) // si carte par défaut
            {
                tailleX        = 20;
                tailleY        = 20;
                nombreFourmis  = 20;
                nombreSucre    = 10;
                nombreCailloux = 10;
            }
            else // si carte personnalisée par l'utilisateur
            {
                Console.WriteLine("\n\nDefinissez la taille de la carte puis tapez entrer (par défaut 20x20 conseillé)\n" +
                                  "Nombre de case (largeur) (minimum 10, maximum 100) : ");
                tailleX = ChoixParametres(10, 100);
                Console.WriteLine("Nombre de case (hauteur) (minimum 10, maximum 100) : ");
                tailleY = ChoixParametres(10, 100);
                Console.WriteLine("Nombre de fourmis maximum (minimum 1, maximum 50) : ");
                nombreFourmis = ChoixParametres(1, 50);
                Console.WriteLine("Nombre de sucre (minimum 1, maximum 50) : ");
                nombreSucre = ChoixParametres(1, 50);
                Console.WriteLine("Nombre de cailloux (minimum 1, maximum 50) : ");
                nombreCailloux = ChoixParametres(1, 50);
            }

            bool GenerationConsole = false;



            //Création du tableau et remplissage en fonction des parametres définis au dessus

            RefTableau.classeTableau = new Tableau(tailleX, tailleY);
            RefTableau.classeTableau.InitialisationTableau();
            RefTableau.classeTableau.InitNid();
            RefTableau.classeTableau.InitPhero(RefTableau.classeTableau.posNid[0], RefTableau.classeTableau.posNid[1]);
            RefTableau.classeTableau.InitSucre(nombreSucre);
            RefTableau.classeTableau.InitCailloux(nombreCailloux);
            RefTableau.classeTableau.InitFourmis();

            if (reponse == 2) // si laffichage console est activé
            {
                GenerationConsole = true;
                string affichage = "";
                affichage = affichGrille(affichage);
                Console.WriteLine(affichage);
                Console.WriteLine();
                Console.ReadKey();
            }

            /// FichierTxt.creationFichierTxt();  //mis en commentaire pour dev

            Tour.TourDeJeu(GenerationConsole, nombreFourmis); // on lance les tours de jeux


            if (reponse == 1) // si lancement par url
            {
                Start();
            }
        }