2014-01-19 4 views
-3

나는 안드로이드 애플 리케이션을위한 체스 게임을 만드는 것을 고려하고있다. 내가 어떻게 해야할지 모르는 유일한 방법은 상대방 AI에 대한 코드를 작성하는 것입니다.체스 게임 AI 프로그래밍하는 방법

AI 용 코드를 처음부터 작성해야합니까, 아니면 구현할 수있는 패키지가 있습니까?

+0

http://web.comhem.se/petero2home/droidfish/ – sihrc

+5

이것은 매우 광범위한 질문입니다. 사람들은 그 주제에 대한 전체 수업을 가르칩니다. – kmera

+0

http://stockfishchess.org/ http://www.craftychess.com/ –

답변

1

당신이 갈 수있는 많은 방법이 있습니다. 대부분의 체스 엔진은 승인 된 체스 대뇌 수사에 의존하며 게임의 처음 12 개 동작으로 평가하기 위해 대형 라이브러리를 조용히합니다. 이런 이유로 몇몇은 체스 enginges의 더 오래된 발생에있는 winnig 접근이었다 특별한 일을 할 때 꽤 혼란스러워집니다. Bascially 게임의 규칙을 인코딩 한 다음, 물론 최고의 솔루션을 찾는 알고리즘을 찾아야합니다. 다시 여러 접근법이 있습니다. 선형 최적화는 하나이지만 게임이 다소 복잡하고 선형 불균형 시스템을 해결하는 것이 메모리 및 CPU 소비 작업이기 때문에 멀티 스레딩이 적절하지 않을 수 있습니다. 또 다른 접근법은 유전자 알고리즘을 사용하는 것입니다. imho는 규칙 및 가능한 전략을 genstructer로 인코딩하고 피트니스 기능에서 인구의 개인을 평가하므로이 문제 영역에 가장 적합합니다. 이것은 여러 스레드로 퍼질 수 있지만,이 방법은 필요한 채우기 크기가 높아질수록 분명히 메모리 소비이기 때문에 자체 영향을 미칩니다.
안드로이드 API를 제공하는 웹 사이트 http://stockfishchess.org/download/ 비축 엔진이나 http://cinnamonchess.altervista.org/과 같은 기존 솔루션이 있으며이를 수행하는 방법에 대한 웹의 많은 자료는 http://chessprogramming.wikispaces.com/Chess+for+Android (시작 지점)과 같은 인터넷에서도 사용할 수 있습니다.
또한 리눅스의 기존 체스 엔진을
http://cinnamonchess.altervista.org/과 같이 포팅 해 볼 수 있습니다. 안드로이드는 리눅스 기반이며 glibc의 안드로이드 교체는 대부분 호환됩니다.
또는 https://github.com/albertoruibal/carballo과 같은 Java 체스 엔진을 사용해 Android에 포팅 할 수도 있습니다.
오픈 소스 체스 엔진을 검색하면 많은 기존 솔루션을 찾을 수 있습니다.
체스 게임을 쓰는 주요 부분은 Ai를 쓰는 것이기 때문에 "유일한 것"은이 경우 꽤 재미 있습니다.
또 다른 방법은 http://de.wikipedia.org/wiki/Schachserver 체스 서버를 사용하여 플레이어가 인터넷에 연결하고 다른 플레이어를 재생할 수 있도록하는 것입니다.

+0

알겠습니다. 답변 해 주셔서 감사합니다. 마치 체스 게임을 만드는 AI 측면을 간과한 것 같습니다. 나는 AI 프로그램이 이미 사용할 수있는 패키지와 소스 코드에 존재한다고 가정했다. 내 게임에 전체 엔진을 다시 써야하는 이유는 무엇입니까? 우리는 난수 생성자를 다룰 때 씨앗을 만들지 않고 단지 라이브러리의 메소드를 사용합니다. 나는 AI에 대한 프로그램이 꽤 보편적이라고 생각했기 때문에 이것이 같은 경우라고 생각했다. 그렇지 않습니까? – user2817240

+0

그래, 필자가 쓴 것처럼, 나는 개인적으로 "재미"의 일부를 놓치더라도 많은 기존 솔루션이있다. ;) – Peter