Um Java-Applikationen auszuführen gibt es unter jedem Betriebssystem mehrere Möglichkeiten. Stellvertretend die, welche überall funktionieren sollte. Voraussetzung ist natürlich ein installiertes und funktionstüchtiges JDK. "Nicand's Dame" sollte eigentlich anstandslos unter allen gängigen Java-Versionen (1.0 bis 1.1.4) funktionieren. Zum Programmstart erst in das Verzeichniswechseln, in dem sich die Datei "Dame.class" befindet und dann "java Dame" eingeben. Das sieht das z.B. unter OS/2 Warp so aus:
Neu: Ein Dialog erscheint, in dem alle nötigen Eistellungen zum Beginn eines neuen Spiels vorgenommen werden können. (Shortcut: Strg+N)
Pause: Das laufende Spiel wird pausiert. Nützlich, wenn z.B. zwei Computerspieler gegeneinander spielen
Beenden: "Nicand's Dame" wird beendet. (Shortcut: Strg+B)
Dieses Menü dient zum Umstellen der Spielbrettanzeige während eines Spiels.
Darstellung |
Beispiel |
---|---|
Vektorgrafik |
|
Pixel, klein |
|
Pixel, mittel |
|
Pixel, groß |
|
Vektorgrafik: Sieht nicht besonders schick aus. Ist aber dafür auch auf langsameren Rechnern, bzw. langsameren JVMs (Java Virtual Machines), spielbar.
Pixel: sieht schon viieel besser aus. Die verschiedenen Auflösungen sind dazu da, damit das Dame-Fenster bei verschiedenen Bildschirmauflösungen nicht zu groß oder zu klein wird.
Hier können die Einstellungen vorgenommen werden, die speziell für den weißen, bzw. schwarzen, Spieler gelten sollen. Die erste Auswahl ist der Spielertyp, ob Mensch oder Computer. Die zweite Auswahl "Level" betrifft nur Computerspieler und legt fest, wie stark der Computer sein soll.
Die beiden anderen Einstellungen "Grafiktyp" und "Spielart" legen allgemeine Optionen zum Spiel fest. "Grafiktyp" beinhaltet die gleichen Optionen, wie das vorher besprochene Menü "Darstellung". Die Spielart legt die Anfangsaufstellung der Spielsteine fest:
Klassisch |
Modern |
---|---|
|
|
Das Ziel des Spieles ist es, dem Gegner alle Steine zu schlagen oder ihn in eine Lage zu bringen, in der er mit keinem Stein einen gültigen Zug machen kann.
Normale Steine können sich nur diagonal nach vorne bewegen.
Normale Steine können sich jeweils nur um ein Feld bewegen.
Beispiel:
gezogen wird per Drag & Drop, d.h. mit der Maus einen Spielstein anfassen, und zu dem Feld ziehen, wohin der Stein ziehen soll. Ist der Zug gültig, wird das Zielfeld grün markiert, und der Stein kann fallengelassen werden.
Geschlagen wird ebenfalls nur diagonal und nach vorne.
Um einen gegnerischen Stein zu schlagen, muß über ihn hinweggezogen werden, d.h. das Feld direkt hinter dem gegnerischen Stein muß frei sein.
Beispiel:
Geschlagen wird genauso wie gezogen - per Drag & Drop.
Nachdem ein Stein geschlagen wurde, kann - falls möglich - direkt hinterher der nächste Stein geschlagen werden.
Beispiel:
ACHTUNG: Die Maustaste während des Ziehens nicht loslassen !
Wenn mit einem Stein geschlagen werden kann, dann steht dieser unter Schlagzwang
Wenn mindestens ein Stein unter Schlagzwang steht - es können ja auch mehrere sein - und der Spieler schlägt nicht, so kann der Gegner einen der Steine, die unter Schlagzwang stehen, entfernen.
Unter Umständen kann es durchaus sinnvoll sein, mit einem Stein unter Schlagzwang nicht zu schlagen, wenn sich dadurch andere Vorteile ergeben.
Wenn der Spieler einen Stein des Gegners entfernen darf, werden alle Steine, die zur Auswahl stehen, grün markiert. Der Spieler muß dann nur noch den Stein anklicken, von dem sich der Gegner verabschieden darf.
Erreicht ein einfacher Stein die letzte Reihe, so verwandelt er sich in eine Dame, die speziell gekennzeichnet wird.
Beispiel:
Eine Dame kann rückwärts ziehen.
Eine Dame kann beliebig viele Felder weit ziehen.
Eine Dame muß, wenn sie schlägt, ebenfalls auf dem Feld direkt hinter dem geschlagenen Stein stehenbleiben.
Eine Dame kann auch mehrmals hintereinander schlagen. Allerdings müssen alle weiteren Steine, die übersprungen werden sollen, direkt neben der Dame stehen. D.h. beim zweiten, dritten, ... Schlagen kann die Dame zwar auch rückwärts schlagen, ansonsten aber nur genauso, wie die normalen Steine.
Beispiel:
Wenn eine Dame unter Schlagzwang steht, dann hat das eine höhere Priorität, als normale Steine unter Schlagzwang.
Wird trotzdem nicht mit der Dame geschlagen, sondern z.B. nur mit einem normalen Stein, ist die Dame natürlich futsch.
Es gab verschiedene Motivationen, um "Nicand's Dame" zu schreiben.
Nico wollte schon seit geraumer Zeit mal einen Computerspieler programmieren, was ihm hier auch ganz gut gelungen ist :-)
Programmieren im Team wird im Berufsleben eher die Regel als die Ausnahme sein, und so wollten wir das dann vorher mal probieren. In dieser Beziehung gab es aber nur kleinere Probleme, aber das Projekt war ja auch noch einigermaßen überschaubar. Wir haben aber erkannt, wie wichtig es ist, das Projekt vorher schon exakt durchzuplanen - was wir nicht immer gemacht haben...
Die Plattformunabhänigigkeit von Java hat uns gereizt, da "Nicand's Dame" auf zwei verschiedenen Systemen entstanden ist. Nico arbeitete mit Win95 und Andreas mit OS/2 Warp 4. In Prinzip klappte alles auch erstaunlich gut, einige kleinere Ärgernisse ( -> repaint()-Probleme ) waren aber trotzdem vorhanden.
Außerdem wollten wir unsere Java-Kenntnisse vertiefen. Learning by doing :-)
Die Aufgaben waren folgendermaßen verteilt:
Nico: Implementation des Computerspieler (KI) und der Spielregeln
Andreas: Benutzerinterface und Grafik
Katherine McLaughlin. Sie übersetzte unsere deutsche Dokumentation ins Englische und testete das Programm ('Buuh, he wins always !') ;-)
Dieses Programm ist "Mailware". Das heißt, wenn Sie dieses Programm regelmäßig benutzen möchten, senden Sie bitte eine e-Mail zu beiden Autoren.
Wir wünschen allen viel Spaß beim Spielen. Um Kommentare, egal ob Fehlermeldung, Vorschlag oder Lob, wird gebeten.
Nico Kämpchen: Nico.Kaempchen@studbox.uni-stuttgart.de
Andreas Ebbert: Andreas.Ebbert@ruhr-uni-bochum.de