Michel Richter

Sie sind hier  : Home Java Programmierung Reversi

Reversi PDF Print E-mail

Das Spiel Reversi war mein allererstes Programm in JAVA, vorher hatte ich nur mit dem JAVA-Hamster programmieren gelernt. Ich hatte mir nun also das JAVA-Kompendium gekauft und war bereit, es mit der wirklichen Programmierung aufzunehmen. Es war natürlich nicht leicht, ein geeignetes Projekt zu finden, das einerseits nicht völlig sinnlos andererseits aber auch nicht so komplex wäre, dass es mich völlig überfordern würde. Da war Reversi genau richtig, auch wenn es am Ende wesentlich umfangreicher geworden ist, als ich anfangs je gedacht hätte. Aber so ist das, wenn man Spaß am Programmieren hat.

Das Spiel selbst.

Reversi ist ein Brettspiel, auch unter dem Namen Othello bekannt. Es wird auch einem "Schach"-Brett gespielt, also einem Spielfeld mit 8x8 Kästchen, die abwechselnd schwarz und weiß sind. Spieler gibt es nur zwei. Dazu gibt es noch Plättchen, auch als (Spiel-)Steine bezeichnet, die auf der einen Seite gelb und auf der anderen rot sind. Die Farben stehen natürlich jeweils für einen der Spieler. Am Anfang des Spiel liegen in der Mitte des Feldes vier Plättchen auf je einem Feld. Je zwei mit der roten und zwei mit der gelben Seite nach oben. Die Spieler ziehen abwechseln, es sei denn, einer kann nicht setzen. Ein Zug sieht folgendermaßen aus: Der Spieler legt ein Plättchen mit seiner Farbe nach oben so hin, dass zwischen diesem und einem anderen "eigenen" Plättchen Steine mit der gegnerischen Farbe liegen. Diese darf er dann allesamt umdrehen, sodass sie seine Farbe zeigen. Ein Leerraum darf natürlich nicht dazwischen sein. "Zwischen diesem und einem anderen eigenen Plättchen" heißt in jeder der acht Richtungen, also sowohl senkrecht als auch waagerecht und diagonal. Ist das Feld komplett voll, endet das Spiel und es gewinnt der Spieler mit den meisten Plättchen, die seine Farbe zeigen.

Das Programm

Mein Programm setzt nicht nur das Spiel an sich grafisch um, es bietet auch noch diverse andere Möglichkeiten:

  • Wechsel zwischen Mensch-Mensch, Mensch-Computer oder Computer-Computer
  • Einstellung der "Intelligenz" der Computerspieler
  • Veränderung aller Einstellungen (Spielfeldfarbe, Plättchenfarbe, Spielfeldgröße)
  • Speicher/Laden-Funktion für Spielstand und Einstellungen einzeln
  • Hilfreichner Zug-Dialog
  • Spielverlauf anzeigbar
  • Züge zurücksetzen möglich
  • Hilfe

Bilder vom Spiel

Auf diesem Bild sieht man das Programm in "normalem" Zustand. Also wie es aussieht, wenn man keine Einstellungen verändert. Das Spiel läuft bereits seit einiger Zeit. Der rote Rahmen in der rechten oberen Ecke markiert das Feld, auf das Spieler 1 gesetzt hat. Es ist eine der Animationen.

Dieses zweite Bild zeigt das Spielfeld mit veränderten Einstellungen. Die Feldgröße wurde erhöht (10x10) und sämtliche Farben wurden verändert, also sowohl die der beiden Spieler als auch die des Spielfeldes. Das alles ist individuell einstellbar. In beiden Bildern spielt übrigens der Computer gegeneinander. Beide Spieler mit mittlerem Schwierigkeitsgrad.

Programmiertechnische Aspekte

Reversi war, wie bereits genannt, mein erstes größeres Programm in JAVA. Anfangs ging es mir nur darum, mich mit der Programmiersprache, der Klassenbibliothek und vor allem der GUI-Programmierung bekannt zu machen. Letztendlich wurde aber noch viel mehr daraus. Nach und nach habe ich folgende Themen der Programmierung behandelt und umgesetzt:

  • GUI-Programmierung mit Menu
  • Dialoge
  • Grafik
  • Minimax-Algorithmus für die KI
  • Speichern / Laden
  • Parallele Programmierung (Threads)
  • Appletfunktion
  • uvm.

Am Ende ist aus diesem Projekt also ein Programm entstanden, das weit mehr konnte, als ich je geplant hatte. Es war für mich die beste Übung und die Ausgangsbasis für alle möglichen anderen Projekte. Immer wieder habe ich auf Ideen zurückgegriffen, die ich bei Reversi eingesetzt hatte. 

Download und Applet

Heruntergeladen werden kann das Programm als .jar direkt von meiner Seite: Download 

Für den Einsatz als Applet wurde das Programm ein wenig abgeschwächt. Im Applet gibt es kein Menu und nur das Spielfeld. Außerdem wurden 3 der 5 Animationen deaktiviert, um einen flüssigeren Programmfluss zu ermöglichen. Dennoch kann man hier schon einmal sehen, wie das Spiel funktioniert. Spielmodus: Mensch (Rot) gegen Computer (Gelb / Stufe "Mittel")

Hinweis: Leider funktioniert das Applet nicht immer richtig. Im Internet-Explorer und im Opera gab es bisher keine Schwierigkeiten, im Firefox kann es zu Problemen kommen.

Viel Spaß