Würfelspiel 10
Setze das abgebildete Klassendiagramm vollständig um. Orientiere Dich bei der Konsolenausgabe am abgebildeten Beispiel. Erstelle zum Testen eine ausführbare Klasse.
Klassendiagramm
Allgemeine Hinweise
- Aus Gründen der Übersicht werden im Klassendiagramm keine Getter und Object-Methoden dargestellt
- So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die Object-Methoden wie gewohnt implementiert werden
Hinweise zur Klasse SymbolDice
- Der Konstruktor soll den Würfel werfen
- Die Methode
void rollTheDice()
soll mit einer gleichverteilten Wahrscheinlichkeit dem Symbol einen Wert (Schwert, Schild) zuweisen
Hinweis zur Klasse Player
Der Konstruktor soll den Namen mit dem eingehenden Namen und die Punkte mit dem Wert 10 initialisieren.
Hinweise zur Klasse Game
- Der Konstruktor soll die Spieler mit Hilfe der eingehenden Namen initialisieren und die Würfelliste mit Hilfe der eingehenden Anzahl Würfel initialisieren
- Die Methode
void play()
soll den Spielablauf abbilden - Die Methode
void move(attacker: Player, defender: Player)
soll einen Spielzug abbilden - Die Methode
void rollTheDices()
soll alle Würfel werfen - Die Methode
int getNumberOfSymbols(symbol: Symbol)
soll die Anzahl der Würfel zum eingehenden Symbol zurückgeben
Spielablauf
- Das Spiel soll aus mehreren Runden bestehen
- In jeder Runde sollen beide Spieler abwechselnd jeweils einen Spielzug durchführen können
- Das Spiel soll enden, sobald ein Spieler 0 Punkte hat
Ablauf eines Spielzugs
- Zu Beginn eines Spielzugs sollen beide Spieler abwechselnd alle Würfen werfen
- Anschließend sollen für den angreifenden Spieler die Anzahl geworfener Schwerter und für der verteidigende Spieler die Anzahl geworfener Schilde ermittelt werden
- Anschließend soll der Schaden gemäß der Formel Anzahl Schwerter - Anzahl Schilde berechnet werden
- Anschließend sollen dem verteidigenden Spieler Punkte in Höhe des Schadens abgezogen werden, wobei der Wert 0 nicht unterschritten werden soll
- Am Ende des Spielzugs soll ausgegeben werden, wie viel Schaden der verteidigenden Spieler erlitten hat, und wie viele Punkte der verteidigende Spieler noch besitzt
Beispielhafte Konsolenausgabe
Runde 1
Hans würfelt 5 Schwerter
Peter würfelt 0 Schilde
Peter erleidet 5 Schaden und besitzt noch 5 Punkte
Peter würfelt 0 Schwerter
Hans würfelt 5 Schilde
Hans erleidet 0 Schaden und besitzt noch 10 Punkte
...
Runde 6
Hans würfelt 3 Schwerter
Peter würfelt 2 Schilde
Peter erleidet 1 Schaden und besitzt keine Punkte mehr