Saya mencoba menerapkan algoritma AI untuk Bomberman. Saat ini saya memiliki implementasi rudimenter yang berfungsi tetapi tidak terlalu pintar (AI saat ini terlalu bersemangat dalam menempatkan bom).
Ini adalah AI pertama yang pernah saya coba terapkan dan saya agak macet. Algoritma yang lebih canggih yang ada dalam pikiran saya (yang saya harapkan dapat membuat keputusan yang lebih baik) terlalu berbelit-belit untuk menjadi solusi yang baik.
Apa tip umum yang Anda miliki untuk menerapkan Bomberman AI? Apakah ada pendekatan yang sangat berbeda untuk membuat bot lebih defensif atau ofensif?
Sunting: Algoritma saat ini
Algoritme saya saat ini berjalan seperti ini (pseudo-code):
1) Cobalah untuk menempatkan bom dan kemudian temukan sel yang aman dari semua bom, termasuk yang baru saja Anda tempatkan. Untuk menemukan sel itu, lakukan iterate pada empat arah; jika Anda dapat menemukan sel divergen aman dan mencapainya tepat waktu (mis. jika arahnya naik atau turun, cari sel yang ditemukan di kiri atau kanan jalan ini), maka aman untuk menempatkan bom dan bergerak ke arah itu.
2) Jika Anda tidak dapat menemukan dan mengamankan sel-sel yang berbeda, cobalah JANGAN menempatkan bom dan melihat lagi. Kali ini Anda hanya perlu mencari sel aman hanya dalam satu arah (Anda tidak harus menyimpang darinya).
3) Jika Anda masih tidak dapat menemukan sel yang aman, jangan lakukan apa pun.
for $(direction) in (up, down, left, right):
place bomb at current location
if (can find and reach divergent safe cell in current $(direction)):
bomb = true
move = $(direction)
return
for $(direction) in (up, down, left, right):
do not place bomb at current location
if (any safe cell in the current $(direction)):
bomb = false
move = $(direction)
return
else:
bomb = false
move = stay_put
Algoritma ini membuat bot sangat memicu-senang (ini akan menempatkan bom sangat sering). Itu tidak membunuh dirinya sendiri, tetapi memiliki kebiasaan membuat dirinya rentan dengan masuk ke jalan buntu di mana ia dapat diblokir dan dibunuh oleh pemain lain.
Apakah Anda punya saran tentang bagaimana saya dapat meningkatkan algoritma ini? Atau mungkin saya harus mencoba sesuatu yang sama sekali berbeda?
Salah satu masalah dengan algoritma ini adalah bahwa ia cenderung meninggalkan bot dengan sangat sedikit (seringkali hanya satu) sel aman yang dapat bertahan. Ini karena bot meninggalkan jejak bom di belakangnya, selama itu tidak bunuh diri.
Namun, meninggalkan jejak bom di belakang menyisakan beberapa tempat di mana Anda dapat bersembunyi. Jika salah satu pemain atau bot lain memutuskan untuk meletakkan bom di suatu tempat di dekat Anda, sering terjadi bahwa Anda tidak memiliki tempat untuk bersembunyi dan Anda mati.
Saya perlu cara yang lebih baik untuk memutuskan kapan akan menempatkan bom.