Die Idee

Es war 1983, als ein kleines Gerät namens C64 Einzug in unseren Haushalt nahm. Zunächst wurde das Gerät vorwiegend zum Spielen verwendet, doch Choplifter & Co verloren bald ihren Reiz und so wurde aus Neugier eine neue Welt erforscht: die Welt des Programmierens. Nach Erwerb der grundlegenden Kenntnisse kam mein fünf Jahre älterer Bruder eines Tages auf eine Idee: Lass uns ein lernendes Schachprogramm schreiben.
  10 REM Lernendes Schachprogramm
So lautete folglich die erste Zeile unseres Programms und wenn wir auch nie weit kamen: Dies war der Ursprung einer Idee, wenngleich die ernsthafte Umsetzung erst viele Jahre später folgte ...

Das erste Programm

Das erste Programm schrieb ich (ca. 1986) auf einem Pocket-Computer von Sharp, dem Sharp 1246S. Dieser hatte gerade 1,2 KB Speicher und folglich war es ein Kampf, ein lauffähiges Programm zu implementieren. Das Programm rechnete einschließlich Ruhesuche vier Halbzüge tief und benötigte dafür i.d.R drei bis fünf Minuten.

Xenon Chess

Etwa 1988 wurde an meiner ehemaligen Schule der Informatik-Unterricht eingeführt. Zunächst Logo auf dem C64, später dann Turbo Pascal auf einem PC 10 II. In der Zwölf (1989) begann ich dann auch mit der Implementierung eines Schachprogramms in Pascal. Wegen zu geringer Programmiererfahrung entstand recht bald ein Spagetti-Programm, das technisch an seine Grenzen stoß. Zwei weitere Entwicklungszyklen brachten (1992) ein Programm hervor, welches alle damals gängigen Grafikkarten unterstützte (CGA, EGA, VGA, Hercules, ...) und auch in Punkto Programmstruktur gar nicht mehr so übel war.

Entscheidend war der vierte Anlauf: Die Grafik wurde auf VGA-Unterstützung reduziert und das Programm komplett redesignt. Das Redesign war tragfähig genug, um eine anständige 2D/3D-Grafik mit einer Vielzahl von Funktionen und einem Peranent Brain zu implementieren. Premiere hatte Xenon Chess dann 1999 und stand beim ftp-Server der TU München zur Verfügung (LEO).

Xenon wurde nie kontinuierlich realisiert, sondern eher stückweise (je nach vorhandener Zeit). Der reine Entwicklungszeitraum beträgt wahrscheinlich ca. ein Jahr. Beachtenswert sind übrigens die Lösungszeiten bei der Mattsuche. Das Programm braucht hier den Vergleich zu Programmen wie Fritz 5 nicht zu scheuen. Das gilt allerdings nur für die Mattsuche ;-).

Schach-Programmierung

Kurz nach meiner Studienzeit (1999) begann ich mit der Erstellung einer Homepage. Hier durfte ein kleiner Beitrag zur Schach-Programmierung natürlich nicht fehlen (welcher bis jetzt nicht fertig ist ;-). Im Rahmen dieses Beitrages schrieb ich Little-Chess, ein kleines C-Schachprogramm mit minimaler Funktionalität. Dieses Programm ist der erste Grundstein von JavaChess.

Java lernen

Um meine Java-Kenntnisse des Studiums zu vertiefen, kam mir (2000) der Gedanke Little-Chess nach Java zu portieren und ein Applet in meine Homepage zu integrieren. Der Quelltext des Programms ist gerade mal 700 Zeilen lang.

JavaChess

Seitdem hab ich JavaChess immer mal wieder ein bisschen weiterentwickelt, nicht zuletzt um weitere Java-Sprachelemente kennenzulernen. Derzeitiger Stand ist die Version 4.3, welche um viele grafische und schachliche Komponenten erweitert wurde.
In Zukunft werde ich JavaChess komplett umstrukturieren. Märchenschach und die Spielstärke möchte ich etwas in den Vordergrund stellen. Die Client-/Server Schnittstelle und die Partie Parametrisierung (FEN/GAME) einschränken. Außerdem plane ich die Portierung zur J2ME Platform, d.h. JavaChess für Mobiltelefone. Unter Download gibts schon die erste Alpha-Preview-Version ;-).