Spielprogrammierung mit Java
HomeAufgabenDruckenJava-Online

Aufgabe 10: Pearl-Spiel mit TCP/IP-Kommunikation


Pearl Game ist eine Erweiterung des bekannten Nimspiels. Die Gewinnstrategie lässt sich aber nicht mehr so einfach ermitteln. Zu Beginn sind 21 Perlen in 6 Reihen angeordnet. Der erste Spieler entfernt mit Mausklick eine beliebige Anzahl Perlen, allerdings nur aus der gleichen Reihe. Anschliessen klickt man auf Ok. Danach kommt der zweite Spieler zum Zug. Wer die letzte Perle entfernen muss, hat verloren.

Sie programmieren ein Tcp PearlGame, mit welchem zwei Spieler über das Internet spielen können. Die beiden Spieler melden sich mit der gleichen SessionID an. Die Kommunikation soll mit Hilfe von zwei TcpNodes erfolgen.

Als Vorlage können Sie folgendes Beispiel verwenden:

TcpPearl_0.java im Online-Editor bearbeiten

Programmcode für lokale Bearbeitung downloaden: (TcpPearl_0.zip)

 


Schritt 1: Das Spielbrett ist vollständig mit Perlen gefüllt. Der aktiver Spieler klickt auf eine Perle und diese wird bei beiden Spielern entfernt. Danach kommt der zweite Spieler zum Zug.

Beginnen Sie mit der Applikation TcpPearl_0.java. Erzeugen Sie in jeder Zelle des 6 x 6 Gitters einen Actor Pearl mit dem Spritebild pearl.gif. Ergänzen Sie die Methoden public boolean mouseEvent(GGMouse mouse) und public void messageReceived(String sender, String text) so, dass die Koordinaten der Perle übertragen werden und Flag isMyMove wechselt. Mit diesem Flag soll auch die Maus inaktiv bzw. aktiv werden.

Verwenden Sie für die SessionID Ihre Initialen gefolgt von irgendeiner Ziffer. Bei der Entwicklung können das Spiel zweimal auf Ihrem Computer starten.

(Ähnliches Beispiel: Tcp Schiffe versenken).

TcpPearl_1.java im Online-Editor bearbeiten

 
Spieler 1   Spieler 2

 

Schritt 2: Beliebige Anzahl Perlen wegnehmen

Ändern Sie die Darstellung, so dass nur 21 Perlen im Gitter positioniert werden. Jeder Spieler kann beliebig viele Perlen wegnehmen können. Mit Klick auf Ok wird der Zug beendet.

Der Ok-Button kann mit dem Sprite-Bild (ok.gif) an der Position (5, 5) erzeugt werden. Beim Klick auf ok wird "55" übertragen. In diesem Fall muss die Spielberechtigung wechseln.

 

 

Schritt 3: Perlen aus nur einer Reihe ziehen

Überprüfen Sie, ob die gewählten Perlen in der gleichen Reihe sind. Wenn dies nicht der Fall ist, soll eine Meldung in der Statusbox erscheinen.

Überprüfen Sie, ob mindestens eine Perle weggenommen wurde, sonst eine Meldung in der Statusbox..

 

Schritt 4: Spielende, Gewinner und Verlierer

Zählen Sie die Kugeln, die noch im Spiel sind. Wenn ein Spieler die letzte Perle wegnimmt, hat er verloren. In der Statusbox soll erscheinen, dass er verloren hat und beim anderen Spieler, dass er gewonnen hat..