Dies ist eine Beta Version von StoneBoard, einem Reversi-Clone
in Java™. Die endgültige Version soll eine starke Computer "Intelligenz"
besitzen und es soll möglich sein, daß mehrere Leute über's
Internet gegeneinander spielen können. Getestet hab ich StoneBoard
mit Netscape Navigator 3.02 und Netscape Communicator 4.0 preview 3. Mit
den InternetExplorer läuft es erst ab Version 3.02 (hat Billy wohl
geschlampt :)
Die Spielregeln
Reversi (oder Othello) ist an sich ein simples Spiel, zumindest von den
Regeln her.
In jeder Runde kann der Spieler einen Stein setzen, danach ist der Mitspieler
dran. Gesetzt wir immer auf ein freies Feld. Dabei werden alles gegnerischen
Steine, welche sich zwischen dem gesetztem und den nächsten eigenen
Steinen befinden umgedreht. Dies geschieht in vertikale, horizontale und
diagonale Richtung. Es muß jedoch pro Zug mindestens ein gegnerischer
Stein umgewandelt werden. Ist dies aus der Spielkonstellation heraus nicht
möglich, muß man passen.
Hier ein Beispiel. Spieler 2
ist am Zug und setzt auf Feld 7:3. Alle Steine von Spieler 1 zwischen diesem
und den nächsten eigenen werde umgedreht
Was ist zu beachten ?
Das wichtigste bei Reversi sind die sogenannten "sicheren Steine". Dies
sind Steine, welche einem der Mitspieler nicht mehr wegnehmen kann und
diese damit eben "sicher" sind. Die ersten "sichern Steine" sind die Ecken.
Sie können nicht von dem Mitspieler umgedreht werden. Ausgehend von
den Ecken sind alle angrenzenden Steine die nicht mehr vom Mitspieler "übersprungen"
werden könne "sicher Steine". Man sollte im Spielverlauf darauf achten,
diese Positionen einzunehmen und nicht dem Mitspieler zu überlassen.
Die grundlegende Strategie bei Reversi liegt nicht darin, soviele Steine
wie möglich bei jedem Zug zu machen, sondern am Schluß die meisten
zu haben. Das Spiel wird im allgemeinen erst in den letzten 3-5 Zügen
entschieden.
Die Entwicklung
Meine erste Version von Reversi habe ich 1992 beim Informatikstudium in
Leipzig geschrieben. Es war in Turbo Pascal programmiert und schon damals
mit Super-VGA Grafik und mit Maus- und Tastatursteuerung.
Die nächste habe ich 1995 unter OS/2 mit dem C-Set++ (später
VisualAge 3.0) programmiert. Sie sah äußerlich dem heutigen
StoneBoard schon ähnlich und hatte schon Animationen und Soundunterstützung.
Spielerisch war es sehr stark und hat selbst mich des öfteren geschlagen
:)
Dann, so etwa Anfang Mai 1997 habe ich mich dann endlich mal rangesetzt
und angefangen, das ganze mal nach Java zu portieren. Mittlerweile habe
ich es jedoch aufgegeben, die alten Quellen und Algorithmen umzusetzten,
teils weil ich es heute nicht mehr so angehen würde aber auch, weil
man in Java doch so einiges anders angehen muß. So bereitet mir die
geringe Performance von Java doch so einige Kopfschmerzen. Während
ich in C++ unter OS/2 ohne Probleme auf einem 486'er 2 Züge im voraus
berechnen konnte, ist dies unter Java auch auf einem hochgezüchtetem
Pentium nicht ohne weiteres möglich. So ist z.B. die Ermittlung der
"sicheren Felder" sehr zeitaufwendig. Gerade bei solchen Sachen zeigt sich,
was ein echter Compiler halt leistet.
Aus diesem Grund habe ich auch verschiedene Tests wieder aus dieser Version
herausgenommen, da es sonst nur mit einem Just-in-Time Compiler spielbar
war. Ich arbeite jedoch an dem Problem und versuche die Sachen so zu optimieren,
daß sie auch in Java nutzbar sind.
Wie man aus der "Neues Spiel" Dialogbox erkennen kann, habe ich vor, das
Spiel in Hinsicht Multiuserfähigkeit zu erweitern. Es soll möglich
sein, das sich verschieden Leute an einem "StoneBoard-Server" anmelden
und gegen einen anderen angemeldeten User spielen können. Allerdings
wird dies sicherlich nicht bei Geocities möglich sein und sowiso noch
ein weilchen dauern (man arbeitet tagsüber ja noch wo anders :(