Le but de ce projet est de concevoir et d'implémenter un labyrinthe interactif, comprenant des fonctionnalités telles que :
- Génération aléatoire de labyrinthes parfaits (tous les points sont reliés par un chemin unique).
- Exploration et recherche d'un chemin optimal dans le labyrinthe.
- Interaction avec l'utilisateur pour parcourir et résoudre le labyrinthe.
-
Création de Labyrinthes :
- Génération dynamique d'un labyrinthe parfait à partir d'une grille rectangulaire
p × q
. - Algorithme de construction basé sur des piles et un marquage des cases visitées.
- Génération dynamique d'un labyrinthe parfait à partir d'une grille rectangulaire
-
Parcours et Résolution :
- Déplacement manuel dans le labyrinthe avec des commandes utilisateur (flèches directionnelles).
- Recherche automatique d'un chemin entre l'entrée (0, 0) et la sortie (p-1, q-1) grâce au parcours en profondeur.
-
Affichage et Interaction :
- Visualisation graphique du labyrinthe avec la bibliothèque ncurses.
- Affichage du chemin exploré et des solutions possibles.
votre_prog.cpp
: Fichier principal contenant la fonction de lecture et d'exécution.labIO.cpp
/labIO.h
: Fichiers pour les fonctions d'entrée/sortie liées au labyrinthe.lab.h
: Définitions des structures de données utilisées (labyrinthe, pile, etc.).laby.txt
: Exemple de fichier texte décrivant un labyrinthe.output
: Contient les résultats générés (par exemple, des labyrinthes explorés).
- Création d'un labyrinthe parfait avec marquage des cases visitées et ouverture de portes.
- Algorithme utilisant une pile pour explorer et générer les chemins.
- Exploration manuelle grâce à des commandes utilisateur (flèches directionnelles,
F1
pour abandonner). - Recherche d'un chemin optimal en utilisant un algorithme de parcours en profondeur (DFS).
- Permet de :
- Générer un labyrinthe.
- Parcourir le labyrinthe en mode manuel.
- Afficher les solutions en cas d'abandon.
- Langage : C++.
- Bibliothèque : ncurses (pour l'affichage).
- Compilation : Commande utilisée pour compiler le projet :
g++ votre_prog.cpp labIO.cpp -o votre_prog -lncurses
Génération d'un labyrinthe parfait avec une taille personnalisée (p × q). Interaction avec le labyrinthe (déplacement manuel ou recherche automatique).
Affichage des chemins explorés et solutions possibles.
GHABI Malek
Ce projet a été réalisé dans le cadre du cours de Mini-Projet, L1 Informatique.