CONNEXION
  • RetourJeux
    • Tests
    • Soluces
    • Previews
    • Sorties
    • Hit Parade
    • Les + attendus
    • Tous les Jeux
  • RetourActu
    • Culture Geek
    • Astuces
    • Réalité Virtuelle
    • Rétrogaming
    • Toutes les actus
  • RetourHigh-Tech
    • Actus JVTECH
    • Bons plans
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTECH
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch
    • Xbox Series
    • Overwatch 2
    • FUT 23
    • League of Legends
    • Genshin Impact
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • PS4
  • One
  • Switch
  • Wii U
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Etoile Abonnement RSS

Sujet : [C] plan pour génerer labyrinthe aleatoi

DébutPage précedente
1
Page suivantePage suivante
akumabeelz akumabeelz
MP
Niveau 10
21 octobre 2014 à 15:32:33

bonjour, j'essaye de faire un programme qui génere des labyrinthe parfait en C, pour en faire un jeu

vous pouvez m'aider a faire mon plan svp pour mon labyrinthe je vois pas trop comment faire,

j'ai un double tableau de char c'est ma grille de "base", chaque case est entourée de murs que je vais enlever les murs ce sont des pipes avec des '_'

je gere pas encore les nombres impaires pour la taille de mon tableau

et j'essaye de faire la méthode exaustive , par contre avec un char ** je ne vois pas trop comment faire je suis un peu perdu , il faut que je stock les postions, et il faut que je mette
un état true or false pour savoir si la case a deja été visitée ou non

quelqu'un peux m'expliquer en detail etape par etape svp

mon tableau de char il ressemble à sa quand je l'affiche
_ _ _ _ _
|_|_|_|_|_|
|_|_|_|_|_|
|_|_|_|_|_|
|_|_|_|_|_|
|_|_|_|_|_|
|_|_|_|_|_|
|_|_|_|_|_|
|_|_|_|_|_|

Ace_Attorney Ace_Attorney
MP
Niveau 10
21 octobre 2014 à 15:37:50

Si tu veux faire de la "bonne" façon, il faut que tu produises ton labyrinthe sous forme d'un graphe.

http://fr.wikipedia.org/wiki/Mod%C3%A9lisation_math%C3%A9matique_d'un_labyrinthe

Après, si ça te dérange pas de faire quelque chose de moins complexe (langage C oblige), tu peux reproduire ton labyrinthe sous forme de double tableau de structure, avec des variables de style up, left, right, down qui sont des booleans.

FortCommeMeric FortCommeMeric
MP
Niveau 10
21 octobre 2014 à 15:38:47

Je te conseille de créer une structure case qui contient des informations sur les murs autour d'elle.

Du genre struct case
{
int nord, sud, est, ouest;
}

Et tu t'en sers avec un code du genre 1 = mur et 0 = pas de mur

Donc t'auras un tableau de cases à 2 dimmensions.

Ensuite t'as plus qu'à casser certains murs en suivant une certaine règle (ça dépend de ta définition de la perfection :hap: )

akumabeelz akumabeelz
MP
Niveau 10
21 octobre 2014 à 16:03:02

merci de vos réponses mais avant de penser a la génération de

labyrinthe j'ai un petit probleme ,j'essaye de resoudre un segfault

j'affiche bien ma grille mais à la fin de l'affichage il y a un segfault,

voici mon code:

http://pastebin.com/e8e7wGhC
quelqu'un peux me dire d'ou sa vient svp

akumabeelz akumabeelz
MP
Niveau 10
21 octobre 2014 à 16:26:18

je segfault lorsque je mets des nombres pairs en paramètre

akumabeelz akumabeelz
MP
Niveau 10
21 octobre 2014 à 16:35:02

c'est bon en faite c'est dans le aff(char **tab) que j'ai segfault

akumabeelz akumabeelz
MP
Niveau 10
21 octobre 2014 à 18:37:46

pour savoir si j'ai deja visité la case est ce que c'est bon de

faire un int ** et de le remplir a 1 lorsque je suis dans la

case?
sa va me servir de condition pour ma boucle while je lui dirai que tant qu'il y a encore 0 dans mon tableau d'int je continue a etre dans la boucle

ou est ce qu'il y a une meilleur façon de le faire? je cherche a trouver une condition pour ma boucle while

akumabeelz akumabeelz
MP
Niveau 10
21 octobre 2014 à 22:09:07

est ce que quelqu'un peux m'expliquer cette phrase, qui vient de wikipedia dans la methode exhaustive

"Puis on regarde quelles sont les cellules voisines possibles et non visitées et on stocke la position en cours."

j'ai un int ** remplis de 0 (toutes les cellules sont marqués comme non visités)

ensuite ma méthode etait d'etre en une boucle lorsqu'il y a encore des 0 dans le tableau d'int mais c'est illogique car si le tableau est remplis de 1 sa voudrai dire que mon tableau est completement vide, a chaque visite je casse un mur

akumabeelz akumabeelz
MP
Niveau 10
21 octobre 2014 à 22:10:05

lorsque je commence a entrer dans le tableau toute les cases sont non visitées, donc non visitées = cellules possibles?

akumabeelz akumabeelz
MP
Niveau 10
22 octobre 2014 à 15:30:22

j'ai presque terminé j'aurai juste besoin d'aide pour stocker des coordonées,

je veux stocker les coordonées de chaque case sur lequel je suis

passer, par exemple tab[1][2] ensuite il va à la case tab[2][2];

je voudrai stocker le x et le y et je vois pas trop comment

faire peut-être dans un int**?

int **pos_x_y que je vais malloc,

ensuite lorsque je vais me deplacer dans le labyrinthe,

a chaque case je stocke x et y dans le pos_x_y[i][0] = x; pos_x_y = y;

donc je vais devoir malloc de taille (longueur * largeur) + 1? //+1 pour le NULL

?

akumabeelz akumabeelz
MP
Niveau 10
22 octobre 2014 à 15:37:24

je crois je me suis répondu a ma question en faite c'est bon

DébutPage précedente
1
Page suivantePage suivante
Répondre
Prévisu
?
Victime de harcèlement en ligne : comment réagir ?
Infos 0 connecté(s)

Gestion du forum

Modérateurs : godrik, LGV
Contacter les modérateurs - Règles du forum

Sujets à ne pas manquer

La vidéo du moment