2009-10-04 3 views
5

Google App Engine에서 실행할 수있는 Chess AI를 찾고 있습니다. 대부분의 체스 AI는 C로 작성된 것으로 보이므로 GAE에서 실행할 수 없습니다. 캐주얼 플레이어를 이기기에는 충분히 강해야하지만, 단일 요청 (10 초 미만) 내에서 이동을 계산할 수있을만큼 효율적입니다.GAE 용 체스 AI

기존 코드와의 통합을 쉽게하기 위해 Python으로 작성하는 것이 이상적입니다.

나는 몇 유망한 프로젝트에서 들어 왔지만 그들은 성숙 보이지 않는 :

답변

5

PyChess의 무엇이 잘못 되었나요? 그것은 꽤 성숙한 순수한 파이썬이며 확실히 캐주얼 플레이어를 이길 수 있습니다. 내가 PyChess 사용 했으므로

그것은 잠시왔다,하지만 some of the source 을 통해 빠른 눈은 당신이 이동을 검색하는 기간에 시간 제한을 설정할 수 있음을 나타냅니다 않습니다.

순수 Python으로 작성된 PyChess 엔진은 pychess.Utils입니다. 특히 pychess.Utils.lutils을 보면 the move generator written in Python을 볼 수 있습니다.

+0

나는 pychess를 보았지만 사용하는 체스 엔진은 C 기반 인 것 같습니다 : http://code.google.com/p/pychess/wiki/ChessEngines – hoju

+0

포인터에 감사드립니다! – hoju

+0

@ 리차드 : CECPEngine 및 UCIEngine 클래스를 통해 C 엔진을 지원합니다. 그러나 엔진이 번들되고 내부 분석에 사용되는 엔진은 Python으로 작성됩니다. –

1

이 문제는 설계되어 GAE 아키텍처에 대한 가난한 일치 CPU 집약적 인 작업이 아닌 효율적인 CRUD 작업을 위해 실제로 요청 당 수십 밀리 초 이상 걸리는 모든 것이 CPU 할당량을 상당히 빨리 날려 버릴 수 있습니다.

+0

여전히 무료 CPU 할당량은 6.5 시간에 매우 관대합니다. 평균 인공 지능 이동이 ~ 3 CPU 초 (일부는 책에 있음)가 걸렸고 ~ 40 개의 이동/게임이 있다면 ~ 200 게임/일이 필요한 것보다 많습니다. (내 가정이 정확하길 바랍니다) – hoju

+0

실제로 그렇게하면 CPU가별로없는 강력한 엔진을 만들 수 있습니다. 좋은 체스 엔진은 트리를 너무 무겁게 잘라냅니다. 깊이 7을 검색 한 노드의 합계는 해석 된 언어의 1 초 내에 있습니다. –

+0

약 500ms 이상 걸리면 프로세스가 종료되고 사용자가 HTTP 500을받습니다. –