Sympa ^^
Je me doute que c'était effectivement juste un choix du bonhomme.
J'ai finis par comprendre qu'effectivement tu fais ce que tu veux tant qu'au final tu envoies tes coordonnées à dessiner et que tu respectes l'ordre de multiplication.
data structures > code
je commencerais par regarder les structures, notamment celle du type de base commun a tout les types de lua.
pour rester plus ou moins dans le sujet, un troisième livre est sorti sur http://www.aosabook.org/en/index.html
Pour changer de sujet ( ) j'essaye toujours de creer un hack n slash et je suis confronté à la génération de map aléatoire (style donjon).
A la base je suis partit d'un graph de type grille (noeud = salle ; arrête = couloir) auquel j'enlève des arrêtes aléatoirement tout en préservant la connexité du graph.
Ca donne des résultats sympatique sauf que pour générer "effectivement" (cad créer une carte avec des cases murs/vide) la map à partir de la et ben... je sèche un peu
en gros j'aimerai pouvoir faire ca : https://www.dropbox.com/s/3e5tomht24c8x6u/graphtomap.jpg
Des idées ?
Ce que j'imagine à peu près : A partir de ton graphe, pose des points sur une grille, puis pour chaque point tu crées tes chemins puis enfin tes salles.
Il te faudra faire attention à pas faire de salles qui se chevauchent.
ah oui bien vu, justement mon problème était justement le chevauchement mais en suivant tes étapes ça devrait pouvoir être jouable
Si tu mets des limites de tailles à tes salles, tu devrais pouvoir les espacer suffisamment sur la grille et tu sauras d'avance à qu'elles distance elles sont les unes des autres. Comme tu as ton graphe tu sais celles qui sont adjacentes, par contre si tu fais un truc plus biscornus il te faudra trouver un autre moyen de connaitre tes voisin, mais comme tu as une grille tu peux chercher les voisins et avancer tant que tu n'as pas de voisin par exemple.
Je me faisais chier au boulot, ça m'a donné l'idée de faire la même sous Excel : http://pastebin.com/pRtiZLDA
Je pars d'une grille (excel --> tableur), je place un point au hasard dedans, puis je fais partir un ou des chemins depuis ce point, puis je poursuis mes chemins dans des directions aléatoires en vérifiant qu'il n'y ait rien du côté où je dois aller.
À chaque itération je laisse tire aléatoirement la possibilité de continuer un chemin ou de créer un nouveau carrefour.
Pour l'instant je reste sur des "couloirs" puisque je n'élargis pas mes chemins mais suffit de rajouter un tirage aléatoire de formation d'une pièce, auquel cas on agrandit la pièce de manière aléatoire (mettre une taille max) toujours en vérifiant les bords.
On peut aussi ajouter des jonctions lorsqu'on vérifie s'il y a un voisin ou non.
Le tout c'est de trouver les bonnes probabilités.
Je pense que c'est largement jouable comme ça.
il y a plein de manière de générer des donjons, l'avantage "original" que j'avais à travailler à partir d'un graph c'était de pouvoir faire simplement la génération des clefs/portes verrouillées et éventuellement une génération de bonus aléatoire mais dont la puissance est croissante
Ta méthode (creuser dans la map et générer des salles) est une méthode qui a fait ses preuves sur de nombreux jeux et j'y reviendrai surement si je m'en sort pas
pour revenir sur le slide deep C and C++ je me suis aperçu que j'avais une fonction qui possédait 50 lignes du genre :
_length = ((_mesg[++i] << 8 | _mesg[++i])+1)*4;
(c'est une fonction qui analyse un packet)
Une solution pour fixer mon soucis ? Je prends tout, même un script magique search&replace qui va bien
(le problème étant le ++i présent plusieurs fois sur la même ligne puisque l'ordre n'est pas garanti)
dark_drow, pour ton histoire de trace de donjon, c'est un probleme assez facil. Certainement ton jeu est en 2d et donc le graphe est planaire (si c'est un arbre, c'est encore plus simple). N'importe quel algo de placement de graphe planaire devrait te donner des coordone ou faire partir tes salles. Une fois que tu as un positionnement, il suffit de changer un facteur de zoom pour faire des salles plus ou moins grosse.
Pour ton probleme ou tu as plusieurs ++i, le probleme est indeterminable. Il te faut d'abors comprendre ce que le code est sense faire et reecrire ces lignes.
ah bah le code c'est moi qui l'ai écrit *honte*
c'est juste que j'analyse mon packet UDP byte à byte pour récupérer les infos (taille, type, ect...)
en théorie j'aurais du écrire ça :
_length = ((_mesg[2] << 8 | _mesg[3])+1)*4;
id = (_mesg[4] << 8 | _mesg[5]);
...
mais vu que je savais pas que le comportement pouvait etre indéterminé j'ai mis ++i
Tu as juste à mettre le ++i entre chaque instruction et écrire i et i+1 dans les []
https://www.jeuxvideo.com/forums/1-47-46404-99-0-1-0-printf-blabla.htm#message_87179
Je commence à apprendre le C++ dès maintenant merci à vous
Salut, petite question sur le c++ : Les espaces de noms servent bien à éviter les conflits entre les bibliothèques ?
skyice, oui. Je m'en sert aussi pour structures mon code et ainsi la documentation.
Ok, merci
Bonsoir.
On peut renommer le blabla en
cout << "Blabla";
Sinon personne ne maîtrise le Win32 pour m'aider ?
https://www.jeuxvideo.com/forums/1-47-89236-1-0-1-0-c-win32-rendu-apres-endpaint.htm
Printf fonctionne en c++ non ?