Resolveur de labyrinthe en C : plusieurs robots doivent traverser un labyrinthe en un minimum de tours, sans collision, via parsing de graphe et recherche du plus court chemin.
Telecharger & tester
make puis ./labygen.pl <rooms> <density> <robots> > input && ./amazed < input (genere un labyrinthe aleatoire et le resout)
A-maze-d est un projet Epitech (Tek1, groupe de 2-4) qui consiste a ecrire en C un programme capable de deplacer plusieurs robots a travers un labyrinthe, de l'entree a la sortie, en un minimum de tours (laps).
Le labyrinthe est fourni sur l'entree standard sous forme de graphe : un nombre de salles, leurs positions, et les tunnels (aretes) qui les relient. Les commandes ##start et ##end marquent l'entree et la sortie, et les lignes commencant par # sont des commentaires.
Le coeur du projet est algorithmique : valider la coherence du terrain (graphe), puis calculer le plus court chemin pour chaque robot en evitant qu'une salle contienne plus d'un robot a la fois (sauf l'entree et la sortie), et sans qu'un robot croise un autre sur le meme tunnel au meme tour.
La sortie affiche, tour par tour, les deplacements de chaque robot au format Pn-r (robot n vers la salle r), avec les sections #number_of_robots, #rooms, #tunnels et #moves. En bonus, un visualiseur de labyrinthe (2D ou 3D) peut etre chaine en pipe avec le programme principal.
Seules les fonctions read, write, malloc, free et getline sont autorisees : tout le parsing, la structure de graphe et les algorithmes de plus court chemin sont ecrits a la main.
Projet suivant
