About RDChess

Update: I have stopped the development of RDChess. The RDChess.exe file still runs under Windows 10, but I have not updated the installation process. This blog is kept online for historical reasons only!

One of my main interests in leisure time has been programming chess. Beside my job and my family I have written the chess program RDChess, spending many evening and weekend hours for this hobby. In the mean time I have stepped down development of RDChess. Anyway the current last version V3.23 works still under Windows 7 and is still freeware :-). You may try RDChess yourself and download a free copy. Or look at the RDChess User Manual (english) oder in die RDChess Bedienungsanleitung (deutsch).

Read a Technical Description of the RDChess program, describing shortly the architecture, data structures, search and evaluation routines of the program. Mostly the program follows the "main stream" architecture of brute force programs of the Northwestern University program CHESS 4.5 type, but has a few "proprietary" program technical features. RDChess is comparably in strength to other freeware programs like "GNUCHESS for Windows". I am not a good chess player and lose practically every time against my own program. Anyway RDChess loses regulary against commercially sold chess programs like Fritz. Read further about the strength of the program and how to test it.

If you are a chess programmer, interested in how RDChess works in detail, look into the source code. Remark: The source code (Borland Delphi, x86 assembler) is well commented but contains comments in a mixture of German and English language, so be aware you may not understand the source not knowing the German language.

Saturday, January 16, 2010

RDChess Bedienungsanleitung in deutsch

RDChess   (c) 2010 Rudolf Posch, 2630 Ternitz, Österreich  Mail 
  Informationen, neue Features, Fehlerbehebungshinweise und die jeweils
 neueste Programmversion zum Download  finden Sie auf http://rdchess.com.

RDChess ist ein Freeware Schachprogramm für Personal Computer unter MS Windows.
RDChess kann auf 2 Arten benutzt werden

- im Winboard Modus
- im Windows (non-WinBoard) Modus

RDChess hat eine WinBoard-Schnittstelle (SS), welche RDChess das Spielen von Partien gegen eine große Zahl anderer Schachprogramme bzw. als Client auf Internet Schach Servern (ICS) ermöglicht. Aber RDChess besitzt im Gegensatz zu den meisten nur WinBoard-fähigen Schachprogrammen auch eine eigene grafische Windows-Benutzeroberfläche. Die RDCHESS Fenster werden im Winboard-Spiel zusätzlich zum Fenster des Programmes Winboard angezeigt.

Im Winboard-Modus wird RDChess durch das Programm WinBoard oder dazu kompatible Programme (z.B. Arena, WBTM,..) gestartet.
Wenn RDChess vom Betriebsystem gestartet wird und die Kommandozeile enthält "xboard" (ohne Anführungszeichen) bzw. /xb oder /wb, geht es in den WinBoard-Modus und tauscht Kommandos und Züge über die Winboard-SS aus. Die Züge des Gegners werden in das WinBoardfenster eingegeben bzw. über WinBoard von anderen Schachprogrammen empfangen. RDChess sendet seine berechneten Züge an WinBoard (aber aktualisiert auch das Brett und alle anderen Daten in den RDCHess-Fenstern).
Die RDChess Fenster dienen im WinBoard-Modus nur zur Information, nur einige wenige RDChess-Parameter und Funktionen bleiben verfügbar (Partie speichern, ...).

Im "non-WinBoard" Modus wird RDChess ausschließlich über seine grafische Benutzeroberfläche gesteuert.

Die RDChess-Benutzeroberfläche  besteht aus einem Hauptfenster mit Menü, dem Schachbrett zur Anzeige der Position und der Eingabe von Zügen. Weitere Fenster dienen zur Anzeige bzw. zum Editieren von Schachpartiedaten, der Zug-Historie, Konfigurationsparametern, Schachuhren, programmtechnischen Daten etc. Viele Fenster besitzen Kontext - Menüs,  die durch Drücken der rechten Maustaste auf einem sensitiven Objekt aufgeklappt werden können.

1. Hauptfenster

Das Hauptfenster besteht aus dem Schachbrett sowie
* Einem Hauptmenü oben,
* Einer Symbolleiste für häufig benötigte Befehle,
* Einer Statuszeile unten, die Hilfe u.a. nützliche Informationen über den aktuellen Status anzeigt..


Partie Menü

Die Befehle des Partiemenüs dienen zum Setzen der Ausgangsstellung, dem Laden und Speichern von Schachpartien, dem Wiederabspielen der aktuellen Partie, dem Ausführen von Testläufen (Benchmarks) sowie dem manuellen Aufstellen von spezifischen Stellungen.
Im WinBoard-Modus kann über Menüeinträge für die aktuelle Partie ein Remis angeboten werden, ein (zukünftiges) Remisangebot des Gegners angenommen werden bzw. die Ratie aufgegeben werden.
Schachpartien werden im Format "portable game notation" (.pgn) (mit FEN-Position und tlw. EPD Erweiterungen) gespeichert und geladen. Figurensymbole in der .pgn-Datei sind aus Kompatibilitätsgründen in englisch (P=pawn, Q= queen, B = Bishop, R = rook, K = king, N = knight).
Enthält beim Laden eine .pgn Datei mehr als 1 Schachpartie, öffnet sich ein Fenster mit einer Listanzeige aller enthaltenen Partien. Durch Selektion bzw. Doppelklick einer Partie wird diese geladen. Im automatischen Spiel (über WinBoard, Auto232, kontinuierlich) werden die Matchpartien selbstätig in eine pgn-Datei ins RDChess Programmverzeichnis geschrieben.
Partiedaten, wie z.B. der Ort, das Datum der Partie, die Namen der beiden Spieler etc. werden gemeinsam mit den Zügen in der .pgn Datei gespeichert, werden jedoch im Programm RDChess in einem eigenen Fenster (Partiedaten) verwaltet.

Modus Menü

RDChess ermöglicht 3 Modi

- Spieler gegen Computer (Standard Modus),
- Spieler gegen Spieler (Spieler spielt beide Seiten),
- Computer gegen Computer (Computer spielt beide Seiten).

RDChess befindet sich jeweils in einem von 2 Zuständen: in einem "kontinuierlichem Spiel" bzw. im "1 Zug Modus". Im kontinuierlichem Spiel antwortet RDChess jeweils automatisch auf einen eingegebenen Spielerzug bzw. denkt ("Permanent brain") in der Zeit, in der ein Spieler seine Zugeingabe überlegt.
Im 1-Zug-Modus geht RDChess nach jedem Zug (Spieler- oder Computerzug) in den "Untätig"- Zustand.

Einige Funktionen des Schachprogramms können nur im Untätig-Zustand angewählt und ausgeführt werden!

Zugeingabe
Züge werden mittels "Drag and Drop" (anklicken der Ziehfigur und verschieben aufs Zielfeld mit gedrückt gehaltener linker Maustaste) oder
 mittels Clicken mit der linken Maustaste ins "von" - Feld und anschließendem Clicken in das "nach" - Feld eingegeben.
Eine gültig zum Zug ausgewählte Schachfigur wird auf einem mittels farbiger Schraffur ausgezeichnetem Feld dargestellt. Dies zeigt an, das Programm auf die Eingabe des Zielfeldes des Zuges wartet.
Als weitere Hinweise wird das Zielfeld des letzten ausgeführten Zuges blau umrandet bzw. ein im Schach befindlicher König auf einem rot umrandeten Feld dargestellt (letzteres mittels Kontextmenü abschaltbar).

Abbrechen einer Zugeingabe bzw. eines Computerzuges
Ein Zug kann durch Drücken der Escape-Taste (Esc) jederzeit abgebrochen werden. Das Programm geht damit in den Untätig-Zustand.
Während der Zugeingabe bewirkt das Klicken mit der Maus auf ein ungültiges Feld ebenfalls den Abbruch.
Ein laufender Computerzug (bzw. eine Zugeingabe mit Permanent Brain) kann durch Anklicken des Symbols "Zug abbrechen" auf der Symbolleiste beendet werden.


Zugrücknahme/ Wiederausführung

Mit den entsprechenden Kommandos im Zug-Menü, Short Cuts (horizontale Links/ Rechtspfeile oberhalb des Schachbrettes) bzw. mit Hilfe des Journalfensters (s.u.) können bereits gespielte Züge wiederholt zurückgenommen bzw. wieder ausgeführt werden.
Es ist möglich, durch die gesamte gespielte bzw. geladene Partie (bis zum Beginn bzw. zum Ende der Partie) zu navigieren.

Wechseln der Seite
RDChess merkt sich im Verlauf einer Partie, ob der Spieler (Mensch) bzw. das Programm am Zug ist.
Im Untätig-Zustand kann  mit Hilfe des Symbols "1 Computerzug" bzw. des Menüpunktes "Zug -> 1 Computer Zug" jederzeit der Computer zur Ausführung eines Zuges gezwungen werden. .
Andererseits kann im Ruhezustand durch Mausklick auf eine gültige Ziehfigur, durch Mausklick auf das Symbol "1Spielerzug"  bzw. mit dem Menüpunkt "Zug-> Spiele 1 Zug" ein Spielerzug gestartet werden

Spielende
RDChess zeigt im Journal (durch die Annotation ...Mxx Matt in xx Zügen)  bzw. auf Wunsch in einer Dialogbox an, wenn es mattsetzt bzw. mattgesetzt wird.
RDChess kennt alle Regeln über Unentschieden (Patt, zu wenig Material, 50 Zug-Regel, 3x Positionswiederholung) und sendet das Resultat auch an einen Winboard-Gegner. RDChess bietet in bestimmten anderen Stellungen ebenfalls ein Remis an. Abhängig von einer Checkbox gibt RDChess auf, wenn es um eine gewisse Materialdifferenz hinten ist.
Im Winboard-Modus kann ein Operator mit einem Kontextmenü (rechter Mausclick auf das Brett) ein Remisangebot des Gegners "bedingungslos" akzeptieren,auf Operatorwunsch selbst Remis bzw. im Namen von RDChess aufgeben. anbieten.
Die zuletzt gespielte Partie wird im RDChess-Verzeichnis automatisch unter dem Namen LastGame.pgn gespeichert und beim Programmstart wieder geladen.

Optionen Menü

Mittels der Optionen -Menüpunkte kann das Brett gedreht werden, die Farbe der Figuren bzw. der weißen und schwarzen Felder geändert werden, die Bediensprache (deutsch <-> englisch) geändert werden sowie ein Konfigurationsdialog aufgerufen werden.
Der Konfigurationsdialog ermöglicht auf mehreren Tafeln diverse Einstellungen, wie die Computerspielstärke, Suchparameter (Permanent Brain, Mattsuche, Verwendung von Hashtabellen, ...) u.a.
Die Größe der Positions-Hashtabelle kann auf 0, 1, 2 bzw. 4 Mill. Einträge gesetzt werden.
Die Computerspielstärke kann folgendermaßen eingestellt werden

- Computer sucht unabhängig von der Zeit bis zu einer fixen Tiefe n
- Tournament Zeitkontrolle (m Minuten für n Züge, z.B. 120 Minuten für 40 Züge). Verbraucht ein Spieler seine gesamte Zeit, verliert er durch Timeout. Nach n  Zügen (z.B. 40) wird die Zeitkontrolle für die nächsten n (z.B. 40) Züge neu auf m Minuten gesetzt
- Incrementeller Modus (verwendet am ICS Schach Server): Jeder Spieler bekommt für das gesamte Spiel eine Basiszeit (m Minuten) und ein Zeitinkrement von n Sekunden nach jedem ausgeführtem Zug zugewiesen. Ist sein Zeitguthaben verbraucht, verliert er ebenfalls durch Zeitablauf.
- N Sekunden für einen Computerzug
- Zeitkontrolle, in der die Computerbedenkzeit an die Bedenkzeit des Spielers angepasst ist ("in Summe gleich viel kumulierte Zeiten)
- Unbegrenzte Suche (z.B. zum Lösen von Matt-Suchaufgaben
___________________________________________________

2. Zusätzliche Fenster

Mit dem Fenster-Menü können 5 zusätzliche Fenster für Standardbenutzer geöffnet werden.
Weitere 7 Fenster zeigen programmtechnische Hintergrundinformationen wie z.B. Hash -Tabellen-Nutzung, Zugsortierung und andere statistische Daten, welche eventuell für Benutzer aufschlussreich sind, die sich für Schachprogrammierung interessieren.
Die Daten in allen Fenstern werden in verschiedener Detaillierung angezeigt, die von den Einstellungen der Optionsfelder "Test Level 1" und "Test Level 2" im Konfigurationsdialog abhängen.

Das Journalfenster

Zeigt die Zug-Historie (Züge mit ev. Zuganmerkungen) an. Zusätzlich zu den bereits erwähnten Navigationsmechanismen kann im Journalfenster mittels den Cursortasten (auf/ ab, Seite auf/ ab, Pos1, End) navigiert werden bzw. durch Doppelklick auf eine selektierte Zeile / Kontextmenü zu einer bestimmten Stellung in der Partie gesprungen werden.
Für jeden Halbzug wird angezeigt
- die Zugnummer,
- Zugnotation, z. B. Ng1f3 (Springer von Feld g1 nach Feld f3) im .pgn Format (mittels Konfigurationsschalter zwischen langer/ kurzer Notation umschaltbar),
- System- oder Benutzerzug-Anmerkungen innerhalb geschwungener Klammern {}
Abhängig von den Konfigurationsschaltern "Test Level 1,2" beinhaltet eine Systemzuganmerkung folgende Daten
{C   1.48/   218.888/MxViT:14/NSWh:15/NM#:6667/NM-ßCut:5732/HTU:6/Ha-ßCut:6550}
C= Computerzug (/ P = Spielerzug  / O= Zug aus Eröffnungsbibliothek)
1.48 Bewertung der aktuellen Position (Bauernwert = 1.00, + ist gut für weiß, Minus ist gut für schwarz. Mxx bedeutet Matt in xx Halbzügen.
218.888 Anzahl der besuchten Knoten in der Suche für diesen Zug
MxViT: 14 Maximal erreichte Suchtiefe (inkl. Ruhesuche)  = 14
... und weitere programmtechnische Daten (NegaScout Wiederholungen, Null Move Zähler, Anzahl Null Move Beta-Cut-Offs, Hashtabellen - Benutzungszähler, Cut-Offs durch Hashtabellennutzung, etc.

Durch Klick  mit der rechten Maustaste auf eine Zeile im Zugjournal kann im Kontextmenü der Menüpunkt "Zuganmerkungen" angewählt werden.
Es erscheint ein Editierfenster, in dem Zuganmerkungen editiert bzw. neu erstellt werden können.

Das Status - Informationsfenster

Zeigt Daten über die aktuelle Position (Rochaderechte, 50-Zugregel-Zähler, Spielstatus etc. an.

Das Partiedaten-Fenster

Dient zur Anzeige und zum Editieren von (.pgn-) Daten der aktuellen Schachpartie  (Event, Ort, Datum, Resultat, Name der Spieler, ..)

Das Eröffnungsbibliotheksfenster

Zeigt den Status und Informationen über die verwendete Eröffnungsbibliothek an.
Die RDChess- Eröffnungsbibliothek (RDCH_op.lib) hat ein proprietäres Format und befindet sich im Standard - RDChess - Verzeichnis. Wird beim Programmstart kein Verzeichnis gefunden, wird ein neues, leeres  angelegt.
Das Programm ist normalerweise beim Start aus der Grundstellung heraus "innerhalb" der Eröffnungsbibliothek, verwendet für Computerzüge nur Züge aus der Bibliothek und wird durch Züge des Gegners, die sich ebenfalls in der Bibliothek befinden, weitergeschaltet.
Ein Eintrag in der E.-Bibliothek kann 0 bis 6 Züge für die aktuelle Stellung beinhalten. Der Computer am Zug wählt einen dieser Züge zufällig aus. Ein Zug in der E.-Bibliothek  kann  "aktiv"  bzw. "passiv" markiert sein. Passive Züge werden vom Computer nur dann verwendet, wenn der Gegner eine solche Variante ansteuert.
Durch Doppelklick mit der Maus auf einen Zug im Eröffnungsbibliothekfenster wird dieser ausgeführt. Damit kann z.B. eine bestimmte Eröffnungs-Zugfolge durchlaufen werden.
Die Eröffnungsbibliothek kann benutzerspezifisch mittels eines "Vorspielmodus" (Lernmodus) erweitert werden. Dazu muss man innerhalb der Eröffnungsbibliothek zu der gewünschten Stellung gehen und dann mittels des "Start Lernen" Schaltknopfes in den Lernmodus wechseln. Die eingegebenen Züge werden in der Eröffnungsbibliothek gespeichert und die Stellung weitergeschaltet. Das Programm erlaubt dabei die Angabe einer Anmerkung zur jeweiligen Stellung. Mittels des ""Lernen beenden" Knopfes wird der Lernmodus beendet. Mittels einer Checkbox kann geählt werden, ob die gelernten Züge als "aktive" bzw. "passive" Züge (s.o) in die Eröffnungsbibliothek eingetragen werden.


Das Schachuhren-Fenster

Zeigt 2 digitale Uhren mit den bisher von den beiden Spielern verbrauchten (aufkumulierten) Zeiten. In den Einstellungen "Tournament" (n Züge in m Minuten) bzw. ICS (inkrementeller Level mit m Basisminuten und n Sekunden Inkrement pro Zug)wird die verbleibende Zeit bis zur nächsten Zeitkontrolle bzw. bis zum Spielende angezeigt.
Eine Checkbox erlaubt die Synchronisation der RDChess Uhren mit der WinBoard Uhr im Winboardmodus.
Die Uhren können mittels eines "Reset" Knopfes auf Null zurückgesetzt werden.

Das Watch Dog Fenster (Computersuche-Überwachung)

Ist ein kleines Fenster, normalerweise oberhalb des Hauptfensters.
Während einer Computersuche zeigt es die Anzahl der besuchten Knoten, die aktuell favorisierte Hauptvariante (beste Zugfolge), die Bewertung dieser Variante (in Bauerneinheiten * 100) und anderen Daten (aktuelle Suchtiefe, ..).


Debug Fenster

Derzeit gibt es 7 "Debug" Fenster, welche nur für Benutzer interessant sind, die sich für Schachprogrammierung interessieren.
Das Positions- Hash-Tabellenfenster und das King + Pawn Hash-Tabellenfenster  zeigen Daten über den Status und die Ausnutzung der beiden Hashtabellen.
Das Fenster "Iterative Computersuche-Infos" (Search Statistics) zeigt im Detail den iterativen Vertiefungsprozess bei der Suche mit Knotenzähler, Suchzeit und Hauptvariante für jede Suchtiefe.
Das Bewertungsfenster zeigt Bewertungsfunktions-Daten der aktuellen Stellung sowie Daten über die Bauernstruktur.

3. Systemanforderungen

Windows. 95, 98, ME, NT, 2000 or XP
- Windows Desktop Auflösung mindestens 800 x 600. 1024 x756 oder mehr empfohlen.
- PC mit 64 Mbytes Hauptspeicher.

4. Programm - Installation

Zum Installieren unzippen sie die RDCHESSVx.zip Datei in ein temporäres Verzeichnis und starten das Programm setup.exe. Setup installiert alle RDChess -  Programmdateien in ein Standardverzeichnis (c:\RDChess), oder in ein anderes Verzeichnis ihrer Wahl.
Das Programm besteht aus der RDChess.exe Programmdatei, einer readme.txt Datei mit Lizenzhinweisen, einer Eröffnungsbibliotheksdatei (RDCH_op.lib), einer englischen und deutschen Bedienungsanleitung (im .txt Format) sowie einigen .pgn Beispielpartien.
Von der RDCHESS Download-Seite im Internet können sie auch den Delphi Quellcode von RDCHESS downloaden und in ein Unterverzeichnis von RDCHESS (RDCHESS/Source) installieren.

5. Hinweise und bekannte Probleme

Die Standard - RDChess - Fensterpositionen am Desktop sind optimal auf eine Bildschirmauflösung von 1152 x 864 oder höher eingestellt.  Auf Bildschirmen mit kleinerer Auflösung müssen Sie eventuell die Fenster manuell in eine günstigere Position verschieben (sorry, ich habe bisher noch keine RDChess-Desktop Save/ Restore Funktion implementiert).

Auf PC's mit weniger als 64 Mbytes Hauptspeicher treten eventuell Probleme bei der Verwendung der Hashtabellen auf (die Standard - Hashtabellen benötigen ca. 26 Mbytes Platz).
Falls ihr Computer während einer Computersuche häufig auf die Auslagerungsdatei auf Festplatte zugreift bzw. langsam läuft, schalten sie im Konfigurationsdialog (Menu Optionen-> Konfiguration... -> Computer Search  -> Use Hash Table aus.

Nicht alle Oberflächenelemente der RDChess Benutzeroberfläche werden richtig zweisprachig angezeigt.
Die "Partie laden"  - Dateiauswahlbox sowie einige andere Systemschaltknöpfe werden fix in der Installationssprache von Windows (sprachabhängige .dll) angezeigt und bleiben von der Sprachumschaltung im RDChess-Optionen-Menü unberührt.
Alle Debug - Fenster sowie einige andere Fensterinhalte sind überwiegend nur mit englischen Bezeichnern implementiert.

RDChess versteht dzt. nur das WinBoard Setup Komando "setboard" und nicht die älteren "edit"-Kommandos zum Aufstellen einer Schachposition.

RDChess macht manchmal (relativ selten) schwerwiegende Fehlzüge (z.B. opfert sinnlos Material). Trotz intensivster Suche konnt ich diesen schwierig zu reproduzierenden Fehler bisher nicht finden :-(