In realtà non sono sicuro che "labirinto" sia il termine corretto. Fondamentalmente gli utenti iniziano in un singolo Room
con 4 porte (N, S, E e W). Possono andare in qualsiasi direzione e ogni stanza successiva contiene un'altra stanza da 1 a 4 porte che vanno in altre stanze.
Il "labirinto" dovrebbe avere dimensioni illimitate e crescere man mano che si spostano le stanze. C'è un numero limitato di Rooms
disponibili, tuttavia il numero disponibile è dinamico e può cambiare.
Il mio problema è che non sono sicuro della migliore struttura di dati per questo tipo di modello
Ho pensato per la prima volta di usare solo una serie di Room
oggetti [X] [X] , ma preferirei davvero evitarlo poiché la cosa dovrebbe crescere in qualsiasi direzione e dovrebbero essere costruite solo stanze "visitate".
L'altro pensiero era che ogni Room
classe contenesse 4 Room
proprietà collegate per N, S, E e W, e si collegasse solo alla precedente Room
, ma il problema con quello non so come identificare se un utente entra in una stanza che ha una stanza adiacente già "costruita"
Per esempio,
--- --- ---------- | | | | Inizia 5 4 | | | | --- --- --- --- --- --- ---------- --- --- | | | | | | | 1 2 3 | | | | | | --- --- --- --- ----------
Se l'utente si sposta da Start> 1> 2> 3> 4> 5, allora Room
# 5 deve sapere che W contiene la stanza iniziale, S è la stanza # 2 e in questo caso non dovrebbe essere disponibile e N può essere una nuovo Room
o un muro (niente).
Forse ho bisogno di un mix di array e stanze collegate, o forse sto solo guardando questo nel modo sbagliato.
Esiste un modo migliore di costruire la struttura dei dati per questo tipo di "labirinto"? O sono sulla strada giusta con il mio attuale processo di pensiero e mi mancano solo alcune informazioni?
(Se sei interessato, il progetto è un gioco molto simile a Munchkin Quest )