roce

ROCE - Roman's Own Chess Engine

»English version

Achtung, die Englische Seite ist etwas mehr "up to date"!


Geschichtliches

Die Arbeit an Roce begann um die Weihnachtsfeiertage 2003/2004. Leider gingen dann im Februar 04 durch einen Festplattencrash sämtliche Daten auf meinem Laptop verloren. Damit war der Quellcode verloren, nicht aber die Ideen und Erfahrungen, die ich beim ersten Versuch gewonnen hatte. Im Mai 04 begann ich erneut an Roce zu arbeiten. Da ich möglichst viel selbst schreiben wollte, konsultierte ich praktisch kaum Quellcode anderer Engines. Dadurch kam dann mein Projekt allerdings auch nur eher schleppend vorwärts. Grosse Teile des Programms mussten mehrfach geändert werden, weil ich entweder etwas übersehen hatte oder halt nicht zu Ende gedacht hatte. Der Zuggenerator funktionierte erst im September 2004 fehlerfrei. Vor allem Rochade und En passant erwiesen sich als echte Knacknüsse. Die Implementierung der Suche erwies sich dann dafür als erstaunlich einfach, aber es zeigte sich dann leider auch, dass die Datenstrukturen nicht gut gewählt waren und erneut mussten grosse Teile des Programms neu geschrieben werden. Die Bewertungsfunktion war (und ist) allerdings ein Grund für Kopfweh und selbst die letzte Version hat deshalb relativ wenige Bewertungskriterien.

Technisches kurz zusammengefasst

Spielstärke

Roce befindet sich zumindest spielstärkemässig leider noch immer in einem eher frühen Entwicklungsstadium. Zwar ist die aktuelle Version (0.038) taktisch weitaus stärker als die Vorgängerversionen, aber auch sie verfügt noch über über verhältnismässig wenig Schachwissen. Vor allem das Endspiel ist erschreckend schwach, da mangels hash-tables die Suchtiefen einfach zu gering sind.

Rechtliches

Da bereits mehr als genug Schachprogramme im Quelltext verfügbar sind, veröffentliche ich lediglich ausführbare Dateien aber keinen Quellcode. Wer nach einem gut lesbaren Quellcode für ein vektorbasiertes Schachprogramm sucht, der sollte einen Blick auf MINIMAX von Chrilly Donninger (Dem Programmierer von Hydra und Nimzo) werfen und wer sich für Bitboards interessiert, sollte den Quelltext von Olithink studieren. Roce ist derzeit Freeware, aber ich behalte mir das Recht vor, dies jederzeit zu ändern.

ICC/Schach.de

Roce spielt regelmässig auf ICC unter dem Account Roce.

Download ROCE:

Windows
Roce 0.0380
Linux
Roce 0.0380 (Linux)
Roce 0.0380 (Linux, statisch gelinkt)
Mac
Roce 0.0380 (Mac)

Alte Versionen

Roce 03 (Fehlerhaft, kein Download)
Roce 0.034
Roce 0.0343
Roce 0.0344
Roce 0.0345
Roce 0.0350
Roce 0.0360
Roce 0.0370

Maturaarbeit:

Die Programmierung eines Computers für das Schachspiel

Durch das Interesse am Schachspiel, bzw. die intensive Beschäftigung mit der Schachprogrammierung, lag es nahe, für die Maturaarbeit eine Arbeit aus diesem Feld zu wählen. Die Arbeit erklärt die grundlegende Funktionsweise eines Schachprogramms. Die Arbeit ist ziemlich einfach gehalten, so dass auch Programmierunkundige Nutzen daraus ziehen sollten, aber doch detailiert genug, dass allein mit diesen Informationen und ein paar elementaren Programmierkenntnissen ein funktionsfähiges Schachprogramm geschrieben werden kann.

Download "Die Programmierung eines Computers für das Schachspiel":

Adobe PDF
Postscript PS