begin process at 2012 02 11 02:11:23
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Windows

 > 

Autre

 > 

Création labyrinthe


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

Création labyrinthe

mardi 13 mars 2007 à 23:26:00 | Création labyrinthe

ChamY

Bonjour,
Je souhaite réaliser un petit jeux, qui utiliserais un labyrinthe.
Mon jeux est pret sauf le laby ^^

Je ne vois pas comment le réaliser.
Je suis sous un projert en mode console.
Il me faut une case de debut et une case de fin. Pas besoin de generer une solution.
J'ai cherché sur le net des algo et je suis tombé la dessus :


On part d'une case de départ dans le tableau. Chaque case possède 4 murs fermés, un marqueur 'visitée' et un id qui la rend unique.

Pour chaque case, s'il existe une case voisine qui n'a pas été visitée, on ouvre le mur entre ses deux cases (penser à l'ouvrir dans les deux cases). S'il n'y a pas de cases voisines libres, on repasse à la case précédente (penser à conserver l'historique de création quelque part).

S'il existe plusieurs cases voisines libres, on en choisit une au hasard.

Une fois qu'on a posé (m-1) (n-1) murs, on marque la dernière case comme case de sortie. Le labyrinthe est maintenant généré, avec un chemin unique reliant toutes les cases entre elles (si, si, essayez pour voir). Il ne reste qu'à parcourir la matrice pour initialiser les différentes cases avec au hasard un monstre, rien, un piège, un objet, à l'exception bien sûr, de la case d'entrée et de celle de sortie.



Probléme : je n'arrive pas a l'appliquer.
Pourriez vous si quelqu'un a un bout de code plutot simple, m'en faire profiter svp.

En vous remerciant par avance.

ps: je ne savais pas trop ou poster ce genre de question. Désolé si ce post ne ce trouve pas au bon endroit :)
mardi 13 mars 2007 à 23:50:10 | Re : Création labyrinthe

Bidou

Administrateur CodeS-SourceS
Salut,
Je ne sais pas s'il s'agit du même algo que tu décris ici, mais le plus connu pour générer des labyrinthes est certainement l'algorithme de Kruskal .
Pour l'implémentation, à toi de faire des recherches pour voir si qqn l'a déjà fait et publié en C#, sinon va falloir que tu te lances dans la conception...


-Blog-
mercredi 14 mars 2007 à 05:11:53 | Re : Création labyrinthe

Lutinore

Administrateur CodeS-SourceS
Salut, je connais pas d'algo particulier, mais pour moi un labyrinthe c'est un tableau à 2 dimensions de 'bool', si c'est true tu peux passer, si c'est false c'est un mur.
mercredi 14 mars 2007 à 09:20:06 | Re : Création labyrinthe

Bidou

Administrateur CodeS-SourceS
Lutinore> Oui mais le but c'est de pouvoir s'assurer qu'il y a toujours un chemin possible! Si tu génères aléatoirement des bool, tu auras pas des beaux chemins, et en plus tu peux pas être sûr d'avoir une solution.
Avec l'algorithme de Kruskal si




-Blog-
mercredi 14 mars 2007 à 11:27:35 | Re : Création labyrinthe

ChamY

Je ne connaissais pas l'algorithme de Kruskal.
Je sens que je vais devoir passer a la conception ^^
mercredi 14 mars 2007 à 13:03:46 | Re : Création labyrinthe

Bidou

Administrateur CodeS-SourceS
Y'a une semaine environ, j'ai un copain qui me l'a montré (Kruskal), mais il l'avait fait en Java.
D'après ce que j'ai pu voir, c'est pas trop compliqué, tu devrais t'en sortir sans trop de problème...





-Blog-
mercredi 14 mars 2007 à 13:16:51 | Re : Création labyrinthe

Lutinore

Administrateur CodeS-SourceS
Bidou >> vi je suis d'accord dans le cas de la génération dynamique il faut effectivement un algo particulier. Mais maintenant pour toutes les questions j'ai une réponse qui marche à chaque fois : T'AS QU'A FAIRE UN WORKFLOW !!


Cette discussion est classée dans : case, création, cases, réaliser, labyrinthe


Répondre à ce message

Sujets en rapport avec ce message

Faire un labyrinthe [ par oberown ] Comment bien programmer un plateau de labyrinthe ?Sachant que le principe des murs, ce ne sont pas des cases, mais les murs sont entre les cases ?Merc Quel évenement pour une case à coché dans une datagridview ? [ par PegaseJM ] Bonjour,J'ai des cases à cocher dans certaines colonnes de mon DataGridView.j'aimerai ce qu'il faut faire pour déclencher un événement lorsque je coch conditions ou récursivité? [ par moi411 ] Bonjour à tous, J'ai une toute petite question mais il faut d'abord que je vous explique mon cas, c'est ça qui risque d'être long!!! En fait je dével Aide création navigateur WEB [ par vins15 ] Bonjour a tous, je suis tout nouveau dans la programation. je ne connait pas beaucoup de chose, mai j'ai décider de crée un Navigateur web, j'ai beauc réaliser un émule de Microsoft Fax sous silverlight en vue de portabilité sur PDA/SMARTPHONE [ par chaouki1588 ] Bonjour je suis un débutant en silverlight j'utilise Microsoft Visual Studio 2010 mon projet consiste a faire une petite application sur silverlight création code dans un module et relation avec requête [ par chrisorry ] Bonjour j'ai un problème avec une requête. j'ai créer un code dans un module : Public Function Mafonction(NphraseR As Integer) As Integer Select Ca traduction de code VB .net en C# .net [ par el3orf ] Salut, j'ai un problème de traduction de code C# .net en VB .net (2005) en fait je ss nul en C#[^^confus2] donc voila le code en VB.net: Public Liaison COM C# [ par Dodh ] Bonjour, Voilà, je suis étudiant en informatique et je dois réaliser, pour projet d'atelier, un programme permettant de "créer" un mini-jeu à l'aide Création de module [ par Byrong ] Bonjour voila j'ai fait un logiciel de gestion. Avec les bases, clients, comptabilité,... Cependant j'aimerais faire en sorte que l'application pui


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 6,302 sec (3)

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