Je ne suis pas vraiment sûr que «labyrinthe» soit le terme correct. Fondamentalement, les utilisateurs démarrent dans un fichier unique Room
comportant 4 portes (N, S, E et W). Ils peuvent aller dans n’importe quelle direction et chaque pièce subséquente contient une autre pièce pouvant contenir de 1 à 4 portes menant à d’autres pièces.
Le "labyrinthe" est censé avoir une taille illimitée et se développer lorsque vous changez de pièce. Il y a un nombre limité de Rooms
disponibles, mais le nombre disponible est dynamique et peut changer.
Mon problème est, je ne suis pas sûr de la meilleure structure de données pour ce type de modèle
J'ai d'abord pensé à utiliser simplement un tableau d' Room
objets [X] [X] , mais je préférerais vraiment éviter cela, car l'objet est censé évoluer dans n'importe quelle direction et que seules les pièces "visitées" doivent être construites.
L’autre idée était de faire en sorte que chaque Room
classe contienne 4 Room
propriétés liées pour N, S, E et W et crée un lien vers la précédente Room
, mais le problème que je ne vois pas, c’est que je ne sais pas comment identifier si un utilisateur se rend dans une pièce a une pièce adjacente déjà "construite"
Par exemple,
--- --- ---------- | | | | Début 5 4 | | | | --- --- --- --- --- --- ---------- --- --- | | | | | | | 1 2 3 | | | | | | --- --- --- --- ----------
Si l'utilisateur quitte Start> 1> 2> 3> 4> 5, alors le Room
n ° 5 doit savoir que W contient la salle de départ, S est le local n ° 2 et, dans ce cas, ne doit pas être disponible, et N peut être un neuf Room
ou un mur (rien).
Peut-être ai-je besoin d'un mélange du tableau et des pièces liées, ou peut-être que je regarde cela de la mauvaise façon.
Existe-t-il un meilleur moyen de construire la structure de données pour ce type de "labyrinthe"? Ou suis-je sur la bonne voie avec mon processus de pensée actuel et manque-t-il juste quelques informations?
(Si cela vous intéresse, le projet est un jeu très similaire à Munchkin Quest )