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