Saya sebenarnya tidak yakin bahwa "maze" adalah istilah yang benar. Pada dasarnya pengguna mulai dalam satu Room
yang memiliki 4 pintu (N, S, E, dan W). Mereka dapat pergi ke segala arah, dan setiap kamar berikutnya berisi ruangan lain dengan 1 hingga 4 pintu masuk yang menuju ke kamar lain.
"Labirin" seharusnya berukuran tidak terbatas, dan tumbuh saat Anda memindahkan kamar. Ada jumlah terbatas yang Rooms
tersedia, namun jumlah yang tersedia adalah dinamis dan dapat berubah.
Masalah saya adalah, saya tidak yakin dengan struktur data terbaik untuk jenis pola ini
Saya pertama kali berpikir tentang hanya menggunakan array [X] [X] Room
objek, tapi saya lebih suka menghindari hal itu karena benda itu seharusnya tumbuh ke segala arah, dan hanya kamar yang "dikunjungi" yang harus dibangun.
Pikiran lain adalah membuat setiap Room
kelas berisi 4 Room
properti yang ditautkan untuk N, S, E, dan W, dan hanya tautan ke sebelumnya Room
, tetapi masalah dengan itu saya tidak tahu bagaimana mengidentifikasi apakah pengguna masuk ke ruangan yang memiliki kamar yang berdekatan sudah "dibangun"
Sebagai contoh,
--- --- ---------- | | | | Mulai 5 4 | | | | --- --- --- --- --- --- ---------- --- --- | | | | | | | 1 2 3 | | | | | | --- --- --- --- ----------
Jika pengguna berpindah dari Mulai> 1> 2> 3> 4> 5, maka Room
# 5 perlu tahu bahwa W berisi ruang awal, S adalah ruang # 2 dan dalam hal ini seharusnya tidak tersedia, dan N dapat berupa baru Room
atau tembok (tidak ada).
Mungkin saya perlu campuran array dan kamar terkait, atau mungkin saya hanya melihat ini dengan cara yang salah.
Apakah ada cara yang lebih baik untuk membangun struktur data untuk jenis "labirin" ini? Atau apakah saya berada di jalur yang benar dengan proses pemikiran saya saat ini, dan saya hanya kehilangan beberapa informasi?
(Jika Anda tertarik, proyek ini adalah game yang sangat mirip dengan Munchkin Quest )