SAE21_2022/README.md

98 lines
4.0 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# L'algorithme d'Ariane
Cet algorithme d'Ariane a été développé dans le cadre de la
[SAÉ2.01 "Développement dune application"](http://www.iut-fbleau.fr/sitebp/pt21/21_2022/STCL6EZD72IDTX73.php)
lors de notre première année (2022) de BUT Informatique à l'IUT de Fontainebleau.
## Compilation
Utiliser la commande suivante pour compiler le programme :
```bash
make
```
## Lancement
### Méthode n°1 (recommandée) : Compiler et lancer le programme avec Make
Utiliser la commande suivante pour compiler (si ce n'est pas déjà fait) puis lancer le programme :
```bash
make run
```
### Méthode n°2 : Compiler puis lancer le programme
Une fois la [compilation du programme](#compilation) faite, exécuter le programme à l'aide
de la commande suivante :
```bash
java -cp out/ Main
```
# Documentation
La documentation du programme est généré à l'aide de JavaDoc. Elle est disponible dans le dossier `doc/`
et peut être consultée en ouvrant le fichier `index.html` dans un navigateur web.
Utilisez la commande suivante pour générer la documentation :
```bash
make doc
```
## Utilisation
### Import/export de fichier labyrinthe (`.lab`)
#### Importer un labyrinthe
##### Méthode n°1 : Depuis la page d'accueil
Cliquez sur le bouton "Importer une grille"
##### Méthode n°2 : Depuis la ligne de commande
Lors du [lancement du programme](#lancement), ajoutez le chemin vers le fichier `.lab` en argument.
> Exemple :
> ```bash
> make run chemin/vers/le/fichier.lab
> ```
> ou :
> ```bash
> java -cp out/ Main chemin/vers/le/fichier.lab
> ```
#### Exporter un labyrinthe
Depuis la page d'édition du labyrinthe, cliquez sur le bouton "Exporter" pour exporter le labyrinthe vers un
fichier `.lab`.
### Générer un labyrinthe aléatoire
Le programme dispose d'un générateur de labyrinthe aléatoire.
> Le générateur fait en sorte que le labyrinthe soit toujours résolvable, c'est-à-dire qu'il contient
> l'emplacement de Thésée ainsi qu'une sortie, et qu'il est possible d'atteindre la sortie depuis la position
> de Thésée.
#### Méthode n°1 : Depuis la page d'accueil
1. Cliquez sur le bouton "Générer une grille"
2. Entrez les dimensions de la grille
3. Cliquez sur le bouton "Remplir aléatoirement"
#### Méthode n°2 : Depuis la page d'édition du labyrinthe
Cliquez sur le bouton "Aléatoire"
### Algorithmes
Le programme possède 2 algorithmes de résolution de labyrinthe décris ci-dessous. Reportez-vous à la section
[Simulations](#simulations) pour savoir comment les utiliser.
#### Algorithme de résolution aléatoire
L'algorithme choisit aléatoirement une des directions disponibles.
#### Algorithme de résolution déterministe
L'algorithme choisit la direction la plus proche de la sortie
##### Algorigramme
![Algorigramme de l'algorithme de résolution déterministe](resources/img/deterministic-algorithm-flowchart.svg)
### Simulations
Pour utiliser les algorithmes de résolution, le programme dispose de 2 modes d'affichages.
Pour lancer une simulation, cliquez sur le bouton "Démarrer" depuis la page d'édition du labyrinthe, choisissez
l'[algorithme de résolution](#algorithmes) que vous souhaitez utiliser, puis choisissez l'un des deux
modes d'affichage disponibles.
#### Mode d'affichage manuel (pas à pas)
Dans ce mode, l'utilisateur doit cliquer sur le bouton "Suivant" (ou sur la flèche directionnelle droite) pour faire
avancer l'algorithme d'une étape.
#### Mode d'affichage automatique
Dans ce mode, l'algorithme effectue automatiquement 100 simulations et affiche à l'écran le nombre moyen
de mouvements nécessaires à la résolution du labyrinthe.
> Étant donné que les simulations peuvent être longues en fonction de la taille du labyrinthe et de la puissance
> de calcul disponible, le programme affiche à l'écran le numéro de la simulation en cours ainsi que
> le nombre de mouvements effectués par l'algorithme en temps réel. Cette information disparait de l'écran
> une fois les 100 simulations effectuées.
## Crédits
- Code :
- Amir Daouadi (@daouadi)
- Lyanis Souidi (@souidi)