Labyrinthe

Fermé
moll - 2 oct. 2013 à 12:53
Doctor C Messages postés 627 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 19 février 2016 - 2 oct. 2013 à 16:39
Bonjour,

Je dois faire un labyrinthe mais je ne comprend pas grand chose....quelqu un peut il m aiguiller sur la procédure a entreprendre svp ? Je ne vois meme pas comment débuter...

? Il s'agit de trouver le plus court chemin entre l'entrée et la sortie dans un labyrinthe en évitant des obstacles.
? Un labyrinthe vous est transmis dans un fichier passé en argument du programme.
? La première ligne du labyrinthe contient les informations pour lire la carte :
- Le nombre de lignes du labyrinthe puis le nombre de colonne (LINExCOL);
- Le caractère "plein";
- Le caractère "vide";
- Le caractère "chemin";
- Le caractère "entrée du labyrinthe";
- Le caractère "sortie du labyrinthe".
? Le labyrinthe est composé de lignes de 'caractères "vide"', de 'caractères "plein"', de 'caractères "entrée du labyrinthe"' et de 'caractères "sortie du labyrinthe"'.
? Le but du programme est de remplacer les 'caractères "vide"' par des 'caractères "chemin"' pour représenter le plus court chemin pour traverser le labyrinthe.
? Un deplacement ne peut se faire que horizontalement ou verticalement : pas en diagonale.
? Dans le cas où plusieurs solutions existent, on choisira de représenter la plus courte. En cas d'égalité, ce sera celle dont la sortie ou la solution est la plus en haut puis la plus a gauche.

? Définition d'une carte valide :
- Toutes les lignes doivent respecter les tailles données lors de la première ligne (LINExCOL).
- Il ne peut y avoir qu'une entrée.
- Il doit y avoir au moins une sortie.
- Il doit y avoir une solution au minimum.
- Le labyrinthe ne fera pas plus que un milliard de case.
- À la fin de chaque ligne, il y a un retour à la ligne.
- Les caractères présents dans la carte doivent être uniquement ceux présenté à la première ligne.
- En cas de carte invalide, vous afficherez sur la sortie d'erreur : MAP ERROR suivi d'un retour à la ligne. Le programme passera ensuite au traitement du labyrinthe suivant.

2 réponses

[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié par [Dal] le 2/10/2013 à 16:05
Salut moll,

Pour savoir où commencer, il faut lire l'énoncé.

Tiens, voilà un début :

- tu ne dois pas "faire un labyrinthe", tu dois créer un programme
- qui lise un format de données représentant un labyrinthe stocké dans un fichier texte dont le nom est passé en paramètre en ligne de commande
- qui vérifie que le format est correct et le stocke dans une structure de données en mémoire de ton programme
- qui résolve le labyrinthe selon les indications fournies, avec un algorithme de résolution
- qui présente ce résultat
- qui traite le fichier suivant (éventuellement passé en ligne de commande, j'imagine)

Comme ton message ressemble étrangement à cci : https://fr.scribd.com/document/172070598/Grimly je suppose que tu dois le faire en C et comme tu as déjà un labyrinthe valide d'exemple dans l'énoncé, tu n'as même pas à le "créer" pour tester ton application.

Si tu bloques à un moment, poste le code qui te pose précisément problème et décrit ta difficulté.

ça va ton voyage galactique ?


Dal
0
Doctor C Messages postés 627 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 19 février 2016 398
2 oct. 2013 à 16:39
J'avais travaillé sur un projet similaire à l'université, nous avions dû coder les algorithmes de Dijkstra et la A*. C'est toujours plus simple d'avoir les algos à porté de main:

https://fr.wikipedia.org/wiki/Algorithme_de_Dijkstra
http://fr.wikipedia.org/wiki/Algorithme_A*

Bonne chance!
0