From 72913ffe11105bb2dddf81e776f017cbaffa0b10 Mon Sep 17 00:00:00 2001 From: Fauvet matthis Date: Fri, 28 Apr 2023 20:34:59 +0200 Subject: [PATCH] Update 'AlgoAlea.java' --- AlgoAlea.java | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/AlgoAlea.java b/AlgoAlea.java index d096518..69c4a9e 100644 --- a/AlgoAlea.java +++ b/AlgoAlea.java @@ -2,6 +2,12 @@ import java.util.Random; import javax.swing.JFrame; import javax.swing.JOptionPane; +/** + * Class pour créer les différent parcours de l'algo Aleatoire + * @version 1.1 + * @author Matthis Fauvet + */ + public class AlgoAlea { private boolean[][] map; private Cellules[][] grille; @@ -14,6 +20,13 @@ public class AlgoAlea { private JFrame cetteFrame; + /** + * Class qui créer un objet Algo Aleatoire pour résoudre les labyrinthe + * @param uneTaille c'est la taille du labyrinthe + * @param tableau c'est la grille de true et false qui permet de savoir si une cellules est un mur ou un couloir + * @param uneGrille tableau double dimension qui stock les différentes Cellules. + * @param uneFrame c'est la fenetre qui affiche le labyrinthe + */ public AlgoAlea(int uneTaille, boolean[][] tableau, Cellules[][] uneGrille, JFrame uneFrame) { this.map = tableau; this.grille = uneGrille; @@ -23,17 +36,21 @@ public class AlgoAlea { /* ==================================== AUtomatique ==================================== */ + /** + * la méthode auto() permet de parcourir 100 fois le labyrinthe puis de print la moyenne de coup de résolutions + * (en combien de coup a été résolue le lab) + */ public void auto() { //outils.PrintGrilleBool(this.map,this.cetteTaille); //outils.PrintGrilleCell(this.grille, this.cetteTaille); int decompte = 0; - int[] tabRes = new int[1000]; + int[] tabRes = new int[100]; Random ran = new Random(); int nxt=0; - while(decompte < 1000){ + while(decompte < 100){ int compteur = 0; this.coordGate = outils.ParcoursCell(this.grille, this.cetteTaille); @@ -62,6 +79,9 @@ public class AlgoAlea { /* ==================================== Manuelle ==================================== */ + /** + * la class manuel propose une vision / utilisation manuel de notre algo tout en proposant de voir ses actions étape par étape + */ public void manuel() { this.coordGate = outils.ParcoursCell(this.grille, this.cetteTaille); this.notreThese = new These(coordGate[0], coordGate[1], this.cetteTaille, this.map); @@ -73,8 +93,12 @@ public class AlgoAlea { /* ==================================== INFINI ==================================== */ + /** + * Dans un cas ou l'algo réalise un trop grand nombre de fois des actions, on peut conjecturer que le lab n'est juste pas finissable. + * @param unCompteur c'est le nombre total de coup/déplacement tenté pour arrivé a la fin + */ public void estInfini(int unCompteur){ - if(unCompteur > 10000){ + if(unCompteur > 20000){ this.comptErreur++; } if(this.comptErreur > 3){