Bomberman AI 지능형 폭탄 배치


13

Bomberman에 AI 알고리즘을 구현하려고합니다. 현재 나는 작동하지만 똑똑하지 않은 초보 구현을 가지고 있습니다 (현재 AI는 폭탄을 배치하는 데 지나치게 열심입니다).

이것은 내가 구현하려고 시도한 첫 번째 AI이며 약간 붙어 있습니다. 내가 생각한 더 정교한 알고리즘 (더 나은 결정을 내릴 것으로 예상되는 알고리즘)은 너무 복잡하여 좋은 솔루션이 아닙니다.

Bomberman AI 구현에 대한 일반적인 팁은 무엇입니까? 봇을 방어 적이거나 공격적인 방식으로 만드는 다른 접근법이 있습니까?


편집 : 현재 알고리즘

내 현재 알고리즘은 다음과 같습니다 (의사 코드).

1) 폭탄을 배치 한 다음 방금 배치 한 폭탄을 포함하여 모든 폭탄으로부터 안전한 셀을 찾으십시오. 해당 셀을 찾으려면 네 방향을 반복하십시오. 안전한 발산 셀을 찾아 제 시간에 도달하면 (예 : 방향이 위 또는 아래 인 경우이 경로의 왼쪽 또는 오른쪽에있는 셀을 찾으십시오) 폭탄을 배치하고 이동하는 것이 안전합니다 그 방향으로.

2) 발산 세포를 찾을 수없고 안전한 경우 폭탄을 배치하지 말고 다시보십시오. 이번에는 오직 한 방향으로 만 안전한 셀을 찾아야합니다 (분기점에서 벗어날 필요는 없습니다).

3) 여전히 안전한 세포를 찾을 수 없으면 아무 것도하지 마십시오.

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

이 알고리즘은 봇을 매우 행복하게 만듭니다 (폭탄을 매우 자주 배치 함). 그것은 스스로를 죽이지 않지만 다른 플레이어가 막고 죽일 ​​수있는 막 다른 골목에 들어가서 스스로를 취약하게 만드는 습관이 있습니다.

이 알고리즘을 개선 할 수있는 방법에 대한 제안이 있습니까? 아니면 완전히 다른 것을 시도해야합니까?

이 알고리즘 의 문제점 중 하나는 봇을 막을 수있는 안전한 셀이 거의없는 경우가 많다는 것입니다. 봇이 죽지 않는 한 봇이 뒤에 폭탄을 남기기 때문입니다.

그러나 폭탄 뒤에 흔적을 남기면 숨길 수있는 곳이 거의 없습니다. 다른 플레이어 나 봇 중 하나가 당신 근처 어딘가에 폭탄을 설치하기로 결정하면 숨을 곳이없고 죽는 경우가 종종 있습니다.

폭탄을 배치 할시기를 결정하는 더 좋은 방법이 필요합니다.


파란색에서 100 % 작동하는 것을 생각하기는 어렵습니다. 그러나 현재 가지고있는 알고리즘을 추가하면 점진적으로 개선하는 데 도움이 될 수 있습니다. Bomberman AI를 구현하려는 첫 번째 애호가가 아닐 수도 있으며, 귀중한 정보 소스를 입증 할 수있는 임의의 Google 검색을 통해 Bomberman AI 경쟁이 많이 발견되었습니다.
Roy T.

나는 당신이 두 가지 일로 bomberman AI를 일반화 할 수 있다고 생각합니다 : 1) 다른 플레이어 폭탄에 의해 폭파로부터 자신을 보호하려고 노력합니다 .2) 다른 사람들을 죽이려고 폭탄을 게임 보드에 놓기 (규칙 1을 명심하면서) : 폭파를 피하기 위해 / 자신의 폭탄에 갇히게됩니다).
tigrou

현재 구현에 대해 최소한 높은 수준의 개요를 게시하고 (많은 코드라고 가정) 폭탄을 배치하는 데 지나치게 열중 한 문제를 해결하는 데 도움이 될 수 있습니다.
Tetrad

@Tetrad 저는 새로운 알고리즘을 구현하고 있습니다. 그 방법을 살펴보고 필요한 경우 여기에 알고리즘을 게시합니다.
Paul Manta

실제 팁은 아니지만 클랜 폭격기 코드를 살펴볼 수 있습니다 . 그것은 폭탄 테러와 비슷한 여러면에서 게임이다.
Ali1S232

답변:


4

당신이 겪고있는 문제는 AI가 다음 폭탄을 어디에 배치해야하는지에 대한 현명한 결정을 멈추지 않는다는 것입니다. 그러면 폭탄이 떨어질 때마다 폭탄을 떨어 뜨린 다음 "내가 뭘해야합니까! ? "

생각을 멈춤

지금, 당신의 AI는 특히 어디로도 방황합니다. 그러나 때로는 실제로 대상 으로 이동해야 합니다. 예를 들어, 파워 업을보고 플레이어보다 먼저 도달 할 수 있다고 생각되면 해당 타일의 안전한 경로를 찾아 이동하여 폭탄을 주시하고 길을 따라 가지 않도록해야합니다.

다음 폭탄을 배치 할 위치를 생각할 때 동일한 대상 이동 동작을 사용할 수 있습니다 .

AI가 즉시 폭탄을 배치하는 대신 폭탄을 배치 할 수있는 경우 검색 알고리즘 을 사용하여 다음과 같은 기준에 따라 사용 가능한 폭탄 배치 지점 중에서 간단히 선택해야합니다.

  • 근처에 있습니까? (폭탄을 배치하려고 할 때마다지도의 대각선 반대편 모서리로 걷지 않도록)
  • 폭발에서 숨길 수있는 곳이 있습니까? 폭탄이 터지기 전에 그곳에 도달 할 수 있습니까?
  • 폭발로 타일이 터지고 파워 업이 나옵니까?
  • 플레이어를 공격 할 가능성이 있습니까? (초기 게임에서 더 쉬운 AI는 이것을 피할 수 있습니다.

이 결정이 내려지면 AI는 폭탄 배치 지점과 폭발에서 숨길 곳을 선택했습니다. 이제 그 자리로 걸어 폭탄을 놓은 다음 숨은 장소로 걸어 갈 수 있습니다. 일단 은신처에 도착하면, 피하기 위해 여기에 걸어 간 폭탄의 길을 막는 것을 염두에두면 (여러 폭탄이있는 경우) 계속 걷고 폭탄 위치를 찾는 것이 좋습니다.

걷기와 안전한 길 찾기

AI를위한 단일 워크 투 포인트 방식을 개발하여 원하는 곳으로 걸을 때마다 사용할 수 있습니다. 이 방법은 A * 검색 알고리즘을 사용할 수 있습니다 을 경로를 찾을 수 있습니다.

AI를 안전하게 유지하기 위해 새 폭탄이 배치 될 때마다 경로를 다시 확인하도록 할 수 있습니다. 폭발을 피하기 위해 폭탄이 폭발 할 때까지 시간을 확인하고 폭탄이 해당 타일을 통과하면서 폭발하지 않으면 폭발 할 수있는 안전한 폭발 타일을 고려할 수 있습니다. 안전하지 않은 경우 통과 할 수없는 타일로 취급하십시오 .

인공 지능 결함을 제공하려면 (실제로 날려 버릴 수 있습니다) 계산 오류가 있어야합니다. 폭탄을 잊어 버리고 폭발 크기를 과소 평가하거나 폭탄이 폭발 할 때까지의 시간 등을 계산해야합니다.

참고 사항 : 방황 할 인접한 타일을 무작위로 선택하는 대신 무작위로 걸을 곳을 골라 보거나 항상 새로운 폭탄 배치 지점을 염두에두면 무작위로 걷는 것이 더 유용한 것처럼 보일 수 있습니다. 그렇게하면 마음을 구성 할 수없는 것과 같은 지점에서 앞뒤로 방황하지 않을 것입니다.


게임에 대한 관련 정보를 잊어 버렸습니다. Bomberman의 단순화 된 버전입니다. 파워 업 없음, 플레이어는 항상 무제한 폭탄을 배치 할 수 있으며 폭탄은 항상 최대 범위 (지도의 한쪽 끝에서 다른 쪽 끝까지)를 갖습니다. 포인트 시스템도 다릅니다 ... [계속]
Paul Manta

[계속] 폭탄을 설치하면 1 점을 얻지 만 벽을 파괴하면 0 점을 얻습니다. 또한 처치시 30 점, 원조는 15 점, 자살은 -20 점을 얻습니다. [계속]
Paul Manta 2012 년

[계속] 그런 점을 염두에두고 AI는 폭탄을 배치 할 때 폭탄을 배치하기 때문에 가능한 한 자주 폭탄을 배치해야하지만 폭탄이 배치되는 위치에 대해서는 특별히주의 할 필요는 없습니다. 항상 안전한 장소를 가지려면 조심해야합니다. [계속]
Paul Manta

[계속.] 음주 당신이 방향을 선택할 때 나 안전에 리드 것을 하나 선택하는 것은 충분하다고 생각 영역을 . 안전한 셀을 찾는 대신 가장 큰 안전한 지역을 찾고 있었기 때문에 내 자신뿐만 아니라 다른 플레이어도 배치 한 폭탄에서 숨길 수 있습니다. 또한 다른 플레이어 중 한 명과 더 가까워지는 방향을 선호하는 것이 좋을까요?
Paul Manta

3
그럼 우리는 Bomberman 과 AI에 대해 전혀 이야기하지 않습니다 ! 우리는 폭탄을 가진 폭탄이있는 게임 에 관한 것입니다. 그러나 폭격기와는 완전히 다르고 두건이 완전히 다르고 당신이 행복한 루터가 되라고 격려합니다. 나는 그 게임을 다루는 경험이 훨씬 적습니다.
doppelgreener
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.