Reversi in JAVA® StoneBOARD v0.91

 
Spieler 1 

 
Computer


Mit was funktioniert StoneBoard ?

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 :(

History

1992 Turbo Pascal Version
  • Super-VGA
  • variables Spielfeld (6x6 bis 20x20)
  • einen Zug Vorrausberechnung
  • 1995 OS/2 Version
  • Animationen und Soundunterstützung
  • variable Spielstärke
  • bis zu zwei Züge im Vorraus berechnen
  • Anfang Mai 1997 Java Version
  • erste noch nich spielbare Version
  • basiert auf dem JDK 1.02
  • 25.Mai 1997 Update auf Version 0.9
  • erste spielbare Version
  • Einbau einer Hilfe (transparente Steine)


  • first preview version 
    1997 by Mario Müller 
      mail :  supermario@gmx.net