Dalam permainan saya, kami melihat lantai sebuah rumah dari samping, dan pahlawan dapat mengambil lift - lift dapat naik (ke lift berikutnya ke atas), atau ke bawah (ke lift berikutnya ke bawah), tergantung pada panah sebagai ditampilkan, dan selalu ada sepasang tepat dua lift yang terhubung. Itulah satu-satunya cara pahlawan dapat bergerak secara vertikal, meskipun ia dapat bergerak secara bebas secara horizontal. Peta rumah adalah kisi 11x5 acak dengan item yang berbeda, dan dinding yang tidak dapat dilepas ke paling kiri, paling kanan, dan kadang-kadang di salah satu dari dua posisi tengah:
Pertanyaan saya: Bagaimana saya bisa memastikan peta selalu acak namun selalu dapat dipecahkan dan bahwa pahlawan, mulai dari sisi kiri lantai bawah, selalu dapat meninggalkannya melalui lift yang mengarah ke atas di lantai atas?
Untuk apa nilainya saya menggunakan bahasa Lua untuk pengembangan. Terima kasih banyak!
Perbedaan antara apa yang Anda miliki dan labirin normal hanyalah bahwa ia memiliki koneksi yang tidak berbatasan secara vertikal. Saya pikir apa yang harus Anda perhatikan adalah algoritma pembuatan labirin berbasis grafik . Anda hanya perlu memiliki satu set lebih besar "kamar yang berdekatan" atau "dinding yang mungkin" daripada labirin 2D biasa, di mana setiap pasangan sel-sel lantai-grid-aligned yang belum memiliki lift intervensi berdampingan. Anda bisa memodelkan ini sebagai grafik di mana menambahkan tepi lift tertentu secara tidak sengaja menghapus tepi lift lain yang mungkin; beberapa algoritma mungkin bingung dengan ini, tetapi tidak yang lain.
sumber