Hallo.
Ich habe bei folgendem Programm bereits die Klassendiagramme, als Aufgaben a und b vollendet.
Bei dem Quelltext verstehe ich nichts und wäre für Lösungsvorschläge eines Java / BlueJ - Programmes der Aufgaben c - e sehr dankbar.
Ein „Skatkartenspiel“ besitzt 32 Spielkarten, die entweder ein Bild- oder einen Zahlenwert besitzen. Bildwerte sind „Bube“, „Dame“, „König“, „As“. Zahlenwerte gibt es von 7 … 10.
Jede dieser Karten gibt es als „Karo“, „Herz“, „Pik“, „Kreuz“.
Die sog. „Farben“ „Karo“ und „Herz“ sind immer rot, „Kreuz“ und „Pik“ sind immer schwarz.
a) Entwirf die Klassen Spielkarte, Bildkarte und Zahlkarte. Diese sollen in einer sinnvollen Beziehung zueinander stehen, die in einem entsprechenden UML – Klassendiagramm dargestellt werden soll.
Zusätzlich soll es ein Attribut „Wert“ geben.
An Methoden soll es neben dem Konstruktor, der bei Generierung eines Objektes dem Attribut „Wert“ einen bestimmten Wert zuweist, u.a. noch eine Methode gibWert() geben.
Der Wert einer Karte ergibt sich aus der Reihenfolge:
7 8 9 10 „Bube“ „Dame“ „König“ „As“ (Regel 1)
Gib eine Implementierung aller 3 Klassen mit den genannten 2 Methoden an.
b) Erstelle ein Klasse „Startklasse_Spiel“ die über eine main – Methode verfügt. Durch diese main – Methode sollen folgende Aktionen ausgelöst werden:
- es werden 2 * 3 Spielkartenobjekte mit den vorne stehenden Namen erzeugt:
Karte11 : schwarz Kreuz 7
Karte12 : rot Herz 7
Karte13 : rot Herz Bube
Karte21 : schwarz Kreuz 9
Karte22 : schwarz Pik 10
Karte23 : rot Karo Bube
c) Entwirf eine weitere Klasse Spielkarte_maumau, die es ermöglicht, dass eine gegebene Spielkarte mit einer anderen Spielkarte verglichen werden kann. D.h. diese Kartenobjekte verfügen über eine weitere zusätzliche Methode spieleMaumau(……………………).
Durch die neue Klasse soll das bestehende UML – Diagramm geändert werden. D.h. es ergibt sich u.U. auch eine neue Beziehungsstruktur zwischen den jetzt 4 Klassen.
Erläutere Deine gewählte Struktur und begründe diese Beziehung. Inwieweit ergeben sich Vorteile oder Nachteile aus diesem Entwurf der neuen Klassen-, bzw. Vererbungsstruktur?
d) Gib eine Implementierung der Klasse Spielkarte_maumau an.
Für die Methode spieleMaumau(……………………) gilt die folgende Regelung:
Die Methode spieleMaumau(……………………) liefert entweder 1,2,3,4 oder 5 zurück.
Als Parameter wird das auf dem Stapel liegende Kartenobjekt übergeben.
Der Wert 1 wird zurückgegeben, falls
die eigene Karte die Karte auf dem Stapel bedienen kann, d.h. dass sie entweder das gleiche Bild, bzw. den gleichen Zahlenwert besitzt, oder über die selbe „Farbe“, d.h. „Karo“, „Herz“, „Pik“ oder „Kreuz“ verfügt.
Der Wert 2 wird zurückgegeben, falls
die eigene Karte die Karte auf dem Stapel nicht bedienen kann. (s.o. bei Fall 1)
Der Wert 3 wird zurückgegeben, falls
die eigene Karte eine „7“ ist
Der Wert 4 wird zurückgegeben, falls
die eigene Karte eine „8“ ist
Der Wert 5 wird zurückgegeben, falls
die eigene Karte ein „Bube“ ist und bereits ein „Bube“ auf dem Stapel liegt.
Für diese Methode sollst Du ein erklärendes Struktogramm erstellen.
e) Um mit dem zu erstellenden Java – Projekt ein „MauMau – Spiel“ simulieren zu können, wurde in c) „extra“ eine eigene Klasse Spielkarte_maumau eingeführt.
Worin liegt der Vorteil dieser Vorgehensweise, d.h. warum ist nicht schon in der Klasse Spielkarte die Methode spieleMaumau(……………………) mit aufgenommen worden?