Ein gut spielendes Schachprogramm zu programmieren gehört vermutlich zu den schwierigsten Aufgaben in der Computerprogrammierung. Das inzwischen vergriffene Buch Schach am PC erläutert auf verständliche Art und Weise die grundlegenden Techniken der Schachprogrammierung. Ein kleines didaktisches Schachprogramm namens MiniMAX dient als Beispiel, um die Techniken in der Praxis zu studieren. Allerdings ist die Version aus dem Buch ein DOS Programm, in C und BASIC geschrieben, und nur im Textmodus, ohne jede graphische Ansicht des Brettes oder Mausbedienung.
Als Folge daraus haben wir den Rechenalgorithmus von MiniMAX auf Windows umgesetzt. Als graphisches Schachbrett dient eine Delphi-Komponente von Michael Leahy, die von Andres Valverde in eine 32 Bit Version für Delphi 2 umgeschrieben wurde.
Für das Schachprogramm MiniMAX und allgemein zum Thema Schachprogrammierung steht das MiniMAX Diskussionsforum zur Verfügung. Alle MiniMAX Programmierer sind herzlich eingeladen ihre Programmerweiterungen vorzustellen, oder offene Fragen mit Gleichgesinnten zu diskutieren.
Die wesentlichen Neuerungen gegenüber Original-MiniMAX:
Über die Hashtabellen gibt es ein Artikel in Computer Schach und Spiele Ausgabe 3/2002, auf Details der Implementierung wurde dort verzichtet, diese sind hier genauer beschrieben und mit Code-Beispielen erläutert.
Wegen des UCI Protokolls wird für Fritz7 das Januar-Update benötigt, welches bei ChessBase im Download-Verzeichnis zu finden ist.
Falls Sie Lust haben an MiniMax weiter zu arbeiten, sei es um neue Funktionen einzubauen oder auch nur um die Suchalgorithmen zu studieren, dann
sind Sie jederzeit herzlich willkommen im Club der MiniMax Programmierer.
Beachten Sie jedoch einige Dinge:
MiniMAX kann beliebig erweitert, verändert und an Dritte weitergegeben werden. Die Autoren verfügen lediglich über die folgenden Urheberrechts-Bestimmungen:
Was brauchen Sie nun, wenn Sie an MiniMAX mitarbeiten wollen?
Heft 4/1998 (Umsetzung von der Basic Version nach Delphi)
Heft 3/2002 (Hashtabellen)
Die biher spielstärkste Variante von MiniMAX kommt von Otmar Spriestersbach und heißt MyMAX.
Das Programm wurde um Hashtabellen, Nullmove, permanent Brain und ein paar Verfeinerungen im Detail erweitert.
MyMAX erkennt auch 3fache Stellungswiederholung, erlaubt es Züge zurückzunehmen und viele weitere nützliche Features.
Wer eine Partie wagen will kann hier das fertig comilierte Programm downloaden:
MyMAX
Eine C++ Version mit eigenem GUI und einigen Zusatz-Features gibt es hier