Bomberman için bir AI algoritması uygulamaya çalışıyorum. Şu anda çalışan ama çok akıllı olmayan bir ilk uygulamaya sahibim (mevcut AI, bomba yerleştirmede çok hevesli).
Bu şimdiye kadar uygulamayı denedim ilk AI ve ben biraz sıkışmış. Aklımdaki daha karmaşık algoritmalar (daha iyi kararlar almayı beklediğim algoritmalar) iyi çözümler olamayacak kadar kıvrıktır.
Bir Bomberman AI uygulamak için hangi genel ipuçlarınız var? Botu daha savunmacı veya saldırgan hale getirmek için radikal olarak farklı yaklaşımlar var mı?
Düzenle: Geçerli algoritma
Geçerli algoritmam böyle bir şeye gidiyor (sözde kod):
1) Bir bomba yerleştirmeye çalışın ve yeni yerleştirdiğiniz bomba da dahil olmak üzere tüm bombalardan güvenli bir hücre bulun. Bu hücreyi bulmak için dört yönden yineleyin; güvenli bir ıraksak hücre bulabilir ve zamanında ulaşabilirseniz (örneğin, yön yukarı veya aşağı ise, bu yolun solunda veya sağında bulunan bir hücreyi arayın), o zaman bir bomba yerleştirip hareket etmek güvenlidir bu yönde.
2) Farklı hücreleri bulamaz ve güvenli bulmazsanız, bir bomba yerleştirmemeyi deneyin ve tekrar bakın. Bu kez sadece bir yönde güvenli bir hücre aramanız gerekecek (ondan sapmak zorunda değilsiniz).
3) Hala güvenli bir hücre bulamıyorsanız, hiçbir şey yapmayın.
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
Bu algoritma botu çok tetikleyici mutlu eder (bombaları çok sık yerleştirir). Kendini öldürmez, ancak diğer oyuncular tarafından engellenip öldürülebileceği çıkmaz sokaklara girerek kendisini savunmasız hale getirme alışkanlığı vardır.
Bu algoritmayı nasıl geliştirebileceğim konusunda herhangi bir öneriniz var mı? Ya da belki tamamen farklı bir şey denemeliyim?
Bu algoritma ile ilgili problemlerden biri , botu üzerinde durabileceği çok az (genellikle sadece bir) güvenli hücre ile bırakma eğilimindedir. Çünkü bot kendini öldürmediği sürece arkasında bir bomba izi bırakır.
Ancak, arkasında bir bomba izi bırakmak gizleyebileceğiniz birkaç yer bırakır. Diğer oyunculardan veya botlardan biri, yakınınızdaki bir yere bomba yerleştirmeye karar verirse, genellikle saklanacak yeriniz yoktur ve ölürsünüz.
Ne zaman bomba yerleştireceğime karar vermenin daha iyi bir yoluna ihtiyacım var.