Generasi acak level puzzle yang menarik?


8

Saya membuat permainan seperti Sokoban yaitu ada kotak yang memiliki beberapa peti di atasnya Anda dapat mendorong dan Anda harus mendapatkan peti pada salib untuk memenangkan level (meskipun saya akan menambahkan beberapa elemen tambahan untuk itu). Apakah ada algoritma umum atau bahan bacaan yang bisa saya lihat untuk bagaimana saya bisa menghasilkan level yang menarik (seperti, tidak sepele untuk dipecahkan) untuk gaya permainan ini? Saya sadar bahwa ada generator level acak untuk Sokoban tapi saya kesulitan menemukan deskripsi algoritma.

Saya tertarik membuat game di mana mesin dapat menghasilkan banyak level untuk saya, disortir berdasarkan kesulitan. Saya bahkan bersedia membatasi aturan permainan untuk membuat generasi level lebih mudah (mis. Saya mungkin akan membatasi ukuran grid sekitar 7x7). Saya menduga ada beberapa cara umum untuk melakukan pembangkitan level di sini seperti yang saya lihat, misalnya, game seperti Traffic Jam (di mana Anda harus memindahkan blok di sekitar blok gratis) dengan 1000 level di mana masing-masing memiliki solusi yang unik.

Satu ide yang saya miliki adalah membuat peta acak dalam keadaan terakhirnya (yaitu di mana semua peti berada di atas salib mereka) dan kemudian komputer akan menarik (bukannya mendorong) peti ini untuk membuat level. Properti bagus di sini adalah kita tahu levelnya bisa dipecahkan. Namun, saya perlu beberapa heuristik untuk memastikan levelnya menarik.


Gagasan yang Anda miliki untuk menghasilkan level sangat menarik. Jujur saya langsung saja mencobanya, daripada menunggu diskusi tentang itu. Saya kira Anda bisa menyesuaikan tingkat kesulitan yang dihasilkan dengan mengatur jumlah tarikan, dan satu heuristik yang mungkin Anda inginkan adalah mendistribusikan tarikan ke beberapa peti, baik sehingga setiap peti dipindahkan dalam jumlah yang adil, tetapi juga sehingga pemain kadang-kadang harus bolak-balik di antara peti (saya kira logika terjalin semacam itu lebih menarik daripada peti-satu-pada-waktu).
jhocking

Jawaban:


6

Lihat kertas: Pembuatan masalah Sokoban secara otomatis

Dari abstrak:

Makalah ini menjelaskan program kami yang membuat masalah Sokoban secara otomatis. Sokoban adalah salah satu teka-teki satu-orang yang ditemukan di Jepang. Program ini terdiri dari tiga tahap: generasi, pengecekan dan evaluasi. Pertama, kandidat untuk masalah dihasilkan secara acak oleh prototipe dan tiga templat. Kedua, kandidat yang tidak terpecahkan dihapus oleh pemecah Sokoban. Akhirnya kandidat yang sepele atau tidak menarik dihapus oleh evaluator. Masalah-masalah yang dibuat program dinilai baik oleh para ahli manusia. Penciptaan seni oleh komputer adalah target penting dari Kecerdasan Buatan. Karya kami dapat dicirikan sebagai salah satu upaya untuk menciptakan beberapa karya seni dengan komputer.


1

Untuk teka-teki yang dapat dipecahkan, seringkali mudah untuk hanya memainkan permainan secara terbalik, mulai dari keadaan terpecahkan dan gerakan yang tidak dilakukan baik yang direncanakan atau secara acak (atau dalam editor.)

Sokoban sangat cocok dengan pendekatan ini, dan akan jauh lebih mudah diimplementasikan daripada strategi mengecualikan dan menyelesaikan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.