Frage Was sind gute Ressourcen zum Schreiben einer Schach-Engine? [geschlossen]


Ich bin daran interessiert, eine Schach-Engine zu schreiben (hauptsächlich als Lernübung) und wäre interessiert an Ressourcen, von denen Leute wissen, dass sie interessant oder nützlich sein könnten, alles wirklich: Papiere, Bücher, Theorie, Tutorials, alles mögliche sinnvoll.


76
2018-01-30 06:56


Ursprung


Antworten:


Aus meinen Archiven:


100
2018-04-14 19:42



Beim Erstellen meiner Schach-Engine habe ich monatelang versucht, gute Ressourcen zu sammeln, die einige der schwierigeren Aspekte beim Erstellen eines Schachspiels beschreiben. Hier ist eine Liste derjenigen, die ich am nützlichsten fand:

Schachprogrammierung von François Dominic Laramée

Dies ist der Artikel, der mich in Computerschach gebracht hat. Es ist ein großartiger Überblick darüber, wie Computer Schach spielen. Es ist extrem einfach zu lesen und es wird Ihnen alle Begriffe und Schlüsselwörter vorstellen.

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

Computer Schach WikiDas hat sich in den letzten Monaten wirklich ausgeweitet. Es ist eine ausgezeichnete Quelle für Referenzmaterial.

http://chessprogramming.wikispaces.com/

Louis Kesslers Computer Chess Links

Sobald Sie die oben genannten Ressourcen durchlaufen haben, finden Sie den Rest auf der folgenden Linkseite.

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

Last but not least schreibe ich ein Computer Schach Blog Das führt Sie durch alle Schritte des Schreibens einer Schach-Engine in C # von Grund auf, es enthält einen Computer-Schach-Links-Abschnitt und ein Schachspiel-Starter-Kit.

http://www.chessbin.com

Adam Berent


26
2018-01-30 07:13



Überblick über viele nützliche Algorithmen im Schach - http://www.frayn.net/beowulf/theory.html- sollte ein guter Ausgangspunkt sein, um das Ausmaß des Problems zu verstehen, und mehrere Möglichkeiten, die Rechenarbeit zu vereinfachen.

-Adam


9
2018-01-30 07:25



Du könntest immer einen Blick darauf werfen GNU Schach Code.


4
2018-01-31 21:33



Claude Shannons 1949 Papier (Warnung: PDF) zu dem Thema ist ein guter Ausgangspunkt


3
2018-02-01 09:18



Das beste Schachprogrammierungs-Tutorial für Anfänger ist bei Spieleentwickler. Es ist sehr einfach zu verstehen, während es sehr ins Detail geht.


2
2018-01-30 07:16



Dies ist im Wesentlichen auf dem Gebiet der Künstliche Intelligenz (AI).

Die gebräuchlichste Art, einen Computer im Schachspiel "zum Denken" zu bringen, ist die Verwendung des Mini-Max-Methode wo der Computer "denkt", indem er die Ergebnisse analysiert, die sich aus dem aktuellen Zustand ergeben.

Die "Güte" der Ergebnisse von verschiedenen Zügen kann aus vielen Kriterien wie Punktzahl, Anzahl der verbliebenen Gegner, Siegzustand, ermittelt werden. Wenn Sie zum Beispiel den Spieler nach rechts bewegen und Sie das Spiel gewinnen, ist das ein sehr guter Zustand. Aber wenn Sie es nach links bewegen, bekommen Sie nichts. Es ist sinnvoll, nach rechts zu gehen. Diese Funktion, die "Güte" definiert, wird normalerweise aufgerufen Heuristische Funktion. 

Dieser Prozess wird für viele Runden rekursiv ausgeführt. Je größer die Anzahl der Umdrehungen, desto mehr Zeit benötigen Sie. Und je größer die Anzahl der Umdrehungen ist, desto intelligenter ist Ihre Software. Vorausdenken in nur einer Runde kann nur zu einer gierigen Auswahl führen. Intelligente Schachsoftware hat eine große heuristische Funktion und denkt in vielen Runden voraus.

ps. Es gibt einige Details des Mini-Max-Algorithmus, den ich hier nicht erklärt habe, aber das sollte die Grundidee abdecken.


1
2018-05-08 19:18



Ich bin der gleichen Liga von Paul Wicks (oben) beigetreten, ich möchte auch eine Schach-Engine für mein eigenes Lernen schreiben, einzige Einschränkung ist mein Job (der an langweiligen Web-Diensten und so weiter arbeiten soll ...), aber es lohnt sich der Schmerz.

Ich entschied mich dafür, es Schicht für Schicht zu bauen. Ich bin fast fertig mit dem Multiplayer-Teil, also (HUMAN vs HUMAN).

Wenn ich damit fertig bin, würde ich gerne die KI-Ebene in das Spielschema (COMPUTER vs HUMAN) integrieren. Das ist der Teil, um den ich mich am meisten Sorgen mache. Ich habe hier in diesem Thread sehr hilfreiche Tipps gefunden. Ein großes Dankeschön an euch alle.

Derzeit ist die Sprache, mit der ich vertraut bin, Java, falls es einen Performance-Hit gibt dann könnte ich es nach C ++ portieren.


1