나는이 gamedev stackechange를 처음 사용했지만 이전에 math 및 cs 사이트를 사용했습니다.
그래서 5 분 동안 5 개의 뱀이 있고 보드가 30x30이고 보드가 30x30이라는 점을 제외하고는 기존 Nokia 뱀 게임과 매우 유사한 5 분 동안 4 개의 다른 뱀과 경쟁 할 뱀에 대한 AI를 만들기 위해 경쟁하고 있습니다. 현장의 여러 가지 작은 장애물.
노키아 게임과 마찬가지로 뱀은 과일에 닿을 때 자라며, 자신이나 다른 뱀이나 벽에 부딪 치면 자랍니다. 게임은 이동 사이에 30ms 지연으로 실행되며 서버는 코드가 분석해야 할 다음 50ms마다 새로운 게임 상태를 보내 다음 이동을 출력합니다.
승자는 게임의 어느 시점에서든 가장 긴 길이를 가진 뱀입니다. 타이 브레이커는 킬로 결정됩니다.
지금까지 내가 한 일은 각 뱀에서 A * 그래프 검색을 구현하여 내 뱀이 사과에 가장 가까운 지 확인하고 사과가 있으면 사과로갑니다. 그렇지 않으면, 나는 다음 사과를 예상하기 위해 뱀이 갈 보드의 빈 영역을 결정하기 위해 깔끔한 작은 알고리즘을 만들었습니다.
이 외에는 뱀이 빠져 나올 수없는 함정에 들어 가지 않도록하기 위해 약간의 생존 가능성 검사가 있으며, 막히면 빠져 나올 수있는 더 좋은 기회가 있습니다.
...
어쨌든, 나는 테스트 서버에서 뱀을 테스트했으며 꽤 잘합니다. 일반적으로 사과가 확실한 경우에만 가고 다른 뱀보다 빨리 자라지 않을 때 공간을 찾는 전략 (일부 뱀은 비슷한 일을하지만 종종 중간 또는 모서리로 이동) 때로는 승리합니다. 이 시련 게임은 생존 가능성에있어 우위를 차지하는 것으로 보이는 동일한 뱀에 의해 때려지지 않는 경우가 많습니다.
그래서 나는 누군가가 내 뱀을 시도하고 향상시켜야 할 아이디어가 궁금했습니다. 아니면 새로운 접근 방식의 아이디어 일 수도 있습니다. 내 기능과 클래스는 훌륭하므로 과감하게 보일 수있는 변경 사항은 그렇게 나쁘지 않아야합니다. 모든 아이디어를 장려합니다.
이견있는 사람?