Wie lerne ich Schachprogrammierung?


13

Grundsätzlich habe ich gesehen, dass die Leute in diesem Forum eine Menge Schachalgorithmen schreiben und Fragen stellen, die ich gerne richtig beantworte. Ich sehe den Code, kann aber nicht erkennen, ob er korrekt ist oder nicht.

Ich bin selbst ein Softwareprofi, aber nicht vertraut mit Schachalgorithmen oder dem Codieren von verwandten Sachen. Könnten Sie mir bitte helfen, vorzuschlagen, wo ich diese Dinge lernen kann, oder ich werde die Erklärungen bekommen?


3
chessprogramming.wikispaces.com ist ein guter Ausgangspunkt. Oder wenn Sie lieber den Quellcode lesen, ist Stockfish Open Source.
user1583209

Antworten:


9

Wie würden Sie das Problem angehen:

  • Schauen Sie sich chessprogramming.wikispaces.com an . Dies wird Ihre Referenzseite sein.
  • Erstellen Sie ein Konto bei talkchess.com . Alle besten Motorenentwickler sind da. Wenn es eine Motorfrage gibt, auf die Sie dort keine Antwort finden, werden Sie sie nirgendwo anders finden.
  • Überprüfen Sie den Quellcode der TSCP-Engine. TSCP ist eine einfachere, aber funktionierende Implementierungs-Schachengine. Leichter zu lesen als Stockfisch.
  • Etwas tun. Versuchen Sie, einen Schachbrettgenerator zu schreiben. Überprüfen Sie die Referenzseiten oben. Studieren Sie, wie TSCP es macht.
  • Vergleichen Sie Ihre PERF-Ergebnisse mit https://chessprogramming.wikispaces.com/Perft
  • Schreiben Sie eine einfache Positionsbewertung nur mit Materialien. Kopieren Sie die PST-Tabelle von TSCP oder der Schachprogrammierungssite.
  • Schreiben Sie eine einfache Nega-Max- und Alpha-Beta-Suche.
  • Lesen Sie mehr über das UCI-Protokoll
  • Transpositionstabelle hinzufügen
  • Fügen Sie einen einfachen Null-Move-Schnitt hinzu

TSCP ist der Ort, an dem ich angefangen habe. Außerdem möchte ich hinzufügen, dass es hier eine nette Seite gibt, auf der Sie in 99 Schritten ein Programm
schreiben können

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.