begin process at 2012 05 28 12:48:42
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Algorithme

 > 

Maths

 > 

Algorithme générer un labyrinthe aléatoire


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Algorithme générer un labyrinthe aléatoire

mercredi 18 mars 2009 à 10:22:16 | Algorithme générer un labyrinthe aléatoire

Hucanabis

Bonjour
Voila je me présente, je suis en première année de DUT Service et Réseaux de Communication et je dois présenter un dossier présentant l'algorithme pour générer des labyrinthe aléatoirement. Malheureusement je ne trouve que la programmation en C (et Dieux c'est que la programmation et les algorithmes ne sont pas mes occupations favorites:s) , et n'ayant jamais étudier ce langage je n'y comprend rien. Auriez-vous quelque astuce ou explication a me donner?
Merci d'avance
jeudi 19 mars 2009 à 14:33:20 | Re : Algorithme générer un labyrinthe aléatoire

bzrd

Salut,

Le plus simple pour faire un labyrinthe c'est :

1- créer une matrice NxM de cases dont chaque case contient 4 murs
2- choisir une case de départ aléatoirement (case courante)
3- empiler les coordonnées de la case courante
4- si aucune des 4 cases voisines n'a 4 murs aller en 8-
5- choisir aléatoirement une des cases voisines ayant 4 murs
6- supprimer le mur entre la case courant et la case destinataire (suppression dans la case courante et dans la case destinataire)
7- case courante=case destinataire et aller en 3-
8- si la pile est vide aller en 10
9- dépiler une case et aller en 4
10-FIN

C'est à peu près tout !
En pratique, pour simplifier certains tests, on crée une matrice (N+2)x(M+2) pour avoir une "bordure", et cette bordure est initialisée non pas avec 4 murs mais avec 0 (comme ça on ne sort pas du cadre dans les phases 4- et 5-). Bien sûr il faut choisir la case de départ en dehors de cette bordure.

Pour faire un vrai labyrinthe il n'y a plus qu'à créer une entrée et une sortie.
Cet algorithme permet de créer un labyrinthe avec un seul chemin entre 2 cases distinctes.

Cordialement
mercredi 25 mars 2009 à 15:36:37 | Re : Algorithme générer un labyrinthe aléatoire

Hucanabis

Ha merci beaucoup pour l'aide:)
Mais je n'arrive toujours pas a réaliser son algorithme comme on me le demande :( c'est a dire avec Début, Fin, SI, les boucles etc...et oui quand je vous disais que je n'y connaissais rien en algorithme c'est vraiment rien :(
vendredi 27 mars 2009 à 15:30:34 | Re : Algorithme générer un labyrinthe aléatoire

bzrd

Tu ne voudrais quand même pas que je te fournisse l'organigramme !

De toute façon, c'est facile : tu ajoutes "0- DEBUT" et tu as déjà "10-FIN".
Ajouter en "0.5 - Initialisation d'une pile".
Tu as un SI en lignes 4 et 8.
Les boucles sont faciles à trouver ("aller en ...")
Eventuellement, en 10- tu peux ajouter l'affichage du labyrinthe avant la FIN.

Allez, un (petit) effort !
mardi 31 mars 2009 à 22:28:17 | Re : Algorithme générer un labyrinthe aléatoire

Hucanabis

Merci bcp pour ton aide et ta patience :)
Je vais essayer de me débrouiller. Mais ce n'est pas par fainéantise que je demande sans cesse des explications, c'est que j'ai vraiment du mal :s je n'ai malheureusement pas la logique pour ce genre de matiére :s
Encore merci :)
mardi 7 avril 2009 à 15:09:59 | Re : Algorithme générer un labyrinthe aléatoire

Hucanabis

Re dsl de te déranger^^
Mais en faite mon prof' veux un générateur aléatoire de labyrinthe, et non un labyrinthe standart avec une porte et une sortie:s je ne sais donc pas si ce que tu m'a dis s'applique a mon cas:s
mardi 7 avril 2009 à 15:19:52 | Re : Algorithme générer un labyrinthe aléatoire

bzrd

Salut,

En principe ça doit te donner des labyrinthes de ce type :
+--+--+--+--+--+--+--+
|        |        |  |
+--+--+  +  +--+  +  +
|     |  |     |     |
+  +  +  +--+  +--+  +
|  |  |        |  |  |
+--+  +--+--+--+  +  +
|     |        |     |
+  +--+  +  +--+  +--+
|        |           |
+--+--+--+--+--+--+--+
Avec un seul chemin entre 2 cases distinctes et ni porte ni entrée (sauf si tu décides d'en mettre en ouvrant deux murs externes).
Je pense que c'est ce que veut ton prof ...
vendredi 24 avril 2009 à 13:59:12 | Re : Algorithme générer un labyrinthe aléatoire

Hucanabis

Bon bas je crois que la bulle m'attend :s jsuis vraiment pas fait pour ce genre de chose :( :(
samedi 13 novembre 2010 à 20:16:47 | Re : Algorithme générer un labyrinthe aléatoire

loulou8453

Bonjour tout le monde,

J'ai un projet dans le même genre à réaliser, mais je ne comprend pas bien, les explications, est'il possible que quelqu'un m'aide un peu s'il vous plait?

Merci
lundi 15 novembre 2010 à 10:49:38 | Re : Algorithme générer un labyrinthe aléatoire

bzrd

Salut,
Dis-moi ce que tu ne comprends pas et j'essaierai de t'aider (si j'ai le temps).

Pour t'avancer, il suffit de coder les cases comme suit :
1=Haut, 2=Droite, 4=Bas et 8=Gauche
Avec ça, la case [0, 0] de l'exemple ci-dessous, serait codée (1+4+8)=13, soit pas de mur à droite, et la [0, 6] vaudrait (1+2+8)=11 -- pas de mur en bas.
0 1 2 3 4 5 6
+--+--+--+--+--+--+--+
0| | | |
+--+--+ + +--+ + +
1| | | | |
+ + + +--+ +--+ +
2| | | | | |
+--+ +--+--+--+ + +
3| | | |
+ +--+ + +--+ +--+
4| | |
+--+--+--+--+--+--+--+

Donc une case avec 4 murs est codée 15 (1+2+4+8).
Voilà il suffit de savoir générer un nombre aléatoire et gérer une pile.

Cordialement

1 2

Cette discussion est classée dans : générer, aléatoire, programmation, algorithme, labyrinthe


Répondre à ce message

Sujets en rapport avec ce message

comment générer un chiffre de façon aléatoire [ par magicoz ] Bonjour, J'aurais souhaité savoir comment générer en C un chiffre de façon aléatoire compris entre 1 et 6 par exemple. Si possible, me fournir un exe Générer un nombre aléatoire [ par lan32 ] Est ce que vous savez quelle est la fonction qui permet de générer un nombre aléatoire par exemple compris entre 0 et 100.Et aussi comment faire pour génération aléatoire [ par jeromedu94 ] bonjour,je voudrais savoir s'il est possible de générer un nombre aléatoire décimal directement ou si on est obliger dans générer un entier et le divi générer un nombre aléatoire compris entre 2 autres [ par flopflopp ] Bonjour,comment générer un nombre aléatoire compris entre 2 autres en C ?merci Générer un exe par programmation [ par mortiis ] Bonjour à tousJ'aimerais savoir s'il est possible de générer un fichier exécutable par programmationPar exemple pour faire un InstallMaker.Si oui j'ai Générer un texte aléatoire [ par seven333 ] Pour créer un programme (avec plusieurs méthodes) de recherche d'un mot dans un texte, je souhaite générer un texte de 500 000 caractères...Mais je ne Générer un pass aléatoire [ par wineasy ] Bonsoir,Je souhaiterai que un password soit générer aussi bien avec des chiffres de des lettres majuscule/minuscule ainsi que plusieurs caractères 'sp Algorithme Labyrinthe en c [ par tiquent ] Bonjour à tous,Je suis étudiant débutant en langage c, mon projet et de générer et réaliser l'interface graphique d'un labyrinthe.J'ai choisi la métho cherche à inclure un algorithme [ par baster200x ] bonjour tous le mande [^^happy13]; vue que je suis débutant en programmation (en terme générale), j'ai besoin toujours de votre aide, alors


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,936 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales