Übungen
Aufgabe 1: Objekte und ihre Beziehungen darstellen
Gegeben ist der folgende Quelltext.
#----------------------------------------
# Wuerfel
#----------------------------------------
from random import randint
class Wuerfel(object):
def __init__(self):
self.augen = randint(1, 6)
def werfen(self):
self.augen = randint(1, 6)
def getAugen(self):
return self.augen
#----------------------------------------
# Spieler
#----------------------------------------
class Spieler(object):
def __init__(self, pName):
self.name = pName
self.rWuerfel = None
self.punkte = 0
def setWuerfel(self, pWuerfel):
self.rWuerfel = pWuerfel
def wuerfeln(self):
self.rWuerfel.werfen()
self.punkte = self.punkte + self.rWuerfel.getAugen()
def getName(self):
return self.name
def getPunkte(self):
return self.punkte
#----------------------------------------
# Test
#----------------------------------------
wuerfel1 = Wuerfel()
wuerfel2 = Wuerfel()
spieler1 = Spieler('Zauberhand')
spieler1.setWuerfel(wuerfel2)
spieler2 = Spieler('Loser')
spieler2.setWuerfel(wuerfel1)
for i in range(5):
spieler1.wuerfeln()
spieler2.wuerfeln()
print('Punktestand', spieler1.getName(), ':', spieler1.getPunkte())
print('Punktestand', spieler2.getName(), ':', spieler2.getPunkte())
print()
(a) Im Testprogramm werden Objekte erzeugt und in Beziehung zueinander gesetzt. Beschreibe in Worten, welche Objekte hier jeweils miteinander in Beziehung stehen. Verdeutliche die Objektkonstellation zu einer selbst gewählten Spielsituation mit einem Objektdiagramm.
(b) Wir ändern das Spielsystem wie folgt ab:
Beschreibe, was sich geändert hat. Implementiere und teste das neue Spielsystem.
Aufgabe 2: Elf-hoch mit Objekten
Folgende Spielsituation soll mit Objekten erfasst werden:
- Es gibt 2 Würfel, die geworfen werden können.
- Es gibt eine Kasse, in die Marken eingezahlt und ausgezahlt werden können.
- Es sollen (vorerst) 3 Spieler mitspielen. Jeder Spieler hat einen Namen und verfügt über eine bestimmte Anzahl von Marken. Jeder Spieler kann die Würfel werfen. Jeder Spieler hat zudem Zugriff auf die Kasse.
- Es gibt einen Spielmanager, der das Spiel leitet. Der Spielmanager fordert hierzu die Spieler der Reihe nach zum Spielen auf.
(a) Welche Objekte der Miniwelt sollen durch Software-Objekte repräsentiert werden?
(b) Welche Objekte sollen Zugriff auf welche anderen Objekte haben?
(c) Verdeutliche eine konkrete Spielsituation mit einem Objektdiagramm. In diesem Objektdiagramm sollen auch alle Referenzen zwischen Objekten dargestellt werden.
(d) Welche Fähigkeiten sollen die Objekte jeweils haben? Erstelle ein Klassendiagramm mit allen Methoden zur Realisieung der gewünschten Fähigkeiten.