체스 엔진을 작성하는 데 좋은 리소스는 무엇입니까? [닫은]


82

저는 체스 엔진을 작성하는 데 관심이 있고 (주로 학습 연습용으로) 사람들이 흥미 롭거나 사용할 수 있다는 것을 알고있는 모든 리소스에 관심이있을 것입니다. 논문, 책, 이론, 튜토리얼, 가능한 모든 것 유능한.


답변:


123

내 아카이브에서 :


5
Chess Programming Wiki는 꽤 멋지다.
Paul Wicks


감사합니다, 할아버지-이제 링크가 수정되었습니다.
HTTP 410

두 번째 링크가 다시 다운되었습니다.
IMON

1
@Imon, 두 번째 링크가 나를 위해 일하고 있습니다.
HTTP 410

31

체스 엔진을 만들 때 체스 게임을 만드는 데있어 어려운 부분을 설명하는 좋은 리소스를 수집하는 데 몇 달을 보냈습니다. 다음은 내가 가장 유용하다고 생각한 목록입니다.

François Dominic Laramée의 체스 프로그래밍

이것은 저를 컴퓨터 체스로 안내 한 기사입니다. 컴퓨터가 체스를하는 방법에 대한 훌륭한 개요입니다. 매우 읽기 쉽고 모든 용어와 키워드를 소개합니다.

http://www.gamedev.net/page/resources/_/technical/artificial-intelligence/chess-programming-part-i-getting-started-r1014

컴퓨터 체스 위키 , 이것은 지난 몇 달 동안 정말 확장되었습니다. 참고 자료에 대한 훌륭한 리소스입니다.

https://www.chessprogramming.org/Main_Page

Louis Kessler의 컴퓨터 체스 링크

위의 리소스를 살펴보면 다음 링크 페이지에서 나머지를 찾을 수 있습니다.

http://www.lkessler.com/cclinks.shtml

마지막 으로 C #으로 체스 엔진을 작성하는 모든 단계를 처음부터 안내 하는 컴퓨터 체스 블로그 를 작성합니다. 여기에는 컴퓨터 체스 링크 섹션과 체스 게임 스타터 키트가 포함되어 있습니다.

http://www.chessbin.com

아담 베렌트


1

이것은 기본적으로 인공 지능 (AI) 분야입니다 .

체스 게임에서 컴퓨터를 "생각"하게 만드는 가장 일반적인 방법은 미니 맥스 방법을 사용하는 것입니다. 은 현재 상태에서 미리 다른 동작을 수행 한 결과를 분석하여 컴퓨터가 "생각" 것입니다.

예를 들어 점수, 남은 적의 수, 승리 상태와 같은 다양한 기준에서 여러 이동 결과의 "좋은 정도"를 결정할 수 있습니다. 예를 들어 플레이어를 오른쪽으로 이동하고 게임에서 이기면 매우 좋은 상태입니다. 그러나 왼쪽으로 이동하면 아무것도 얻지 못합니다. 오른쪽으로 이동하는 것이 합리적입니다. "선함"을 정의하는이 함수를 일반적으로 휴리스틱 함수 라고 합니다.

이 프로세스는 여러 차례 반복적으로 수행됩니다. 턴 수가 많을수록 더 많은 시간이 필요합니다. 그리고 턴 수가 많을수록 소프트웨어는 더 지능적입니다. 한 차례 만 앞서 생각하면 욕심 많은 선택이 나올 수 있습니다. 지능형 체스 소프트웨어는 훌륭한 휴리스틱 기능을 가지고 있으며 여러 차례에 걸쳐 미리 생각합니다.

추신. 여기서 설명하지 않은 mini-max 알고리즘에 대한 몇 가지 세부 사항이 있지만 기본 아이디어를 다루어야합니다.


1

저도 같은 리그의 Paul Wicks (위)에 가입했습니다. 저도 제 자신의 학습을 위해 체스 엔진을 작성하고 싶습니다. 유일한 제약은 제 하루 일입니다 (지루한 웹 서비스와 물건을 다루는 것입니다 ..).하지만 그만한 가치가 있습니다. 고통.

레이어 별 접근 방식을 사용하여 구축하기로 결정했습니다. 나는 멀티 플레이어 부분, 즉 (인간 대 인간)을 거의 끝냈다.

이 작업이 끝나면 AI 레이어를 통합하여 (COMPUTER vs HUMAN) 플레이 방식을 지원하고 싶습니다.이 부분이 제가 가장 걱정하는 부분이며이 스레드에서 매우 유용한 도움말을 찾았습니다. 여러분 모두에게 큰 감사를드립니다.

현재 제가 잘 알고있는 언어는 Java입니다. 성능 저하가있을 경우 C ++로 이식 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.