나는 안드로이드 애플 리케이션을위한 체스 게임을 만드는 것을 고려하고있다. 내가 어떻게 해야할지 모르는 유일한 방법은 상대방 AI에 대한 코드를 작성하는 것입니다.체스 게임 AI 프로그래밍하는 방법
AI 용 코드를 처음부터 작성해야합니까, 아니면 구현할 수있는 패키지가 있습니까?
나는 안드로이드 애플 리케이션을위한 체스 게임을 만드는 것을 고려하고있다. 내가 어떻게 해야할지 모르는 유일한 방법은 상대방 AI에 대한 코드를 작성하는 것입니다.체스 게임 AI 프로그래밍하는 방법
AI 용 코드를 처음부터 작성해야합니까, 아니면 구현할 수있는 패키지가 있습니까?
당신이 갈 수있는 많은 방법이 있습니다. 대부분의 체스 엔진은 승인 된 체스 대뇌 수사에 의존하며 게임의 처음 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 체스 서버를 사용하여 플레이어가 인터넷에 연결하고 다른 플레이어를 재생할 수 있도록하는 것입니다.
알겠습니다. 답변 해 주셔서 감사합니다. 마치 체스 게임을 만드는 AI 측면을 간과한 것 같습니다. 나는 AI 프로그램이 이미 사용할 수있는 패키지와 소스 코드에 존재한다고 가정했다. 내 게임에 전체 엔진을 다시 써야하는 이유는 무엇입니까? 우리는 난수 생성자를 다룰 때 씨앗을 만들지 않고 단지 라이브러리의 메소드를 사용합니다. 나는 AI에 대한 프로그램이 꽤 보편적이라고 생각했기 때문에 이것이 같은 경우라고 생각했다. 그렇지 않습니까? – user2817240
그래, 필자가 쓴 것처럼, 나는 개인적으로 "재미"의 일부를 놓치더라도 많은 기존 솔루션이있다. ;) – Peter
http://web.comhem.se/petero2home/droidfish/ – sihrc
이것은 매우 광범위한 질문입니다. 사람들은 그 주제에 대한 전체 수업을 가르칩니다. – kmera
http://stockfishchess.org/ http://www.craftychess.com/ –