In dieser Aufgaben sollen Sie ihrem Traum, ein Gamedeveloper zu werden, einen Schritt näher kommen!
Erstellen Sie eine Klasse Player
. Diese soll als Attribute name: str
, level: int
, health: int
und power: int
haben. Spieler sollen beim Erstellen mit einem Level, drei Health und ein Power starten. Desweiteren soll diese Klasse zwei Methoden implementieren:
receive_damage(damage)
: Reduziert health
des Spielers um den Parameter damage
, bzw. erhöht health
falls damage
negativ.level_up()
: Der Spieler bekommt ein Level-Up. Sie können sich selbst aussuchen, was dabei passiert!Erstellen Sie eine Klasse Monster
. Diese soll als Attribute name: str
, health: int
und power: int
haben. Sie dürfen sich aussuchen, mit welchen Standardwerten ihre Monster starten! Desweiteren soll diese Klasse zwei Methoden implementieren:
receive_damage(damage)
: Reduziert health
des Monsters um den Parameter damage
, bzw. erhöht health
falls damage
negativ.rage(wahrheitswert)
Falls True, gerät das Monster in Rage und seine power
verdoppelt sich! Sonst wird power
auf den ursprünglichen Wert zurückgesetzt.Um bestimmtes Verhalten umzusetzen, benötigen Ihre Klassen ggf. weitere Attribute.
Werden Sie nun kreativ und machen Sie daraus ein kleines Videospiel in der Konsole, das Spiel könnte z.B. so starten… (kein funktionierender Code, nur Beispiel):
import random
def main():
# Erstelle einen Spieler und ein Monster
spieler = player(f"dieletztelebendekiwi")
gegner = monster(f"kiwiterminator")
# Lasse Sie kämpfen. Falls Funktion True zurückgibt, hat man gewonnen. Sonst verloren.
if kampf(spieler, gegner):
print(f"Du hast {gegner.name} besiegt und bekommst ein level-up!")
spieler.levelup()
else:
print(f"Du bist an {gegner.name} gestorben. Git Gud.")
def kampf(spieler: player, gegner: monster)-> bool:
print(f"Achtung {spieler.name}, ein wildes {gegner.name} ist aufgetaucht!")
entscheidung = input(f"Möchtest du kämpfen, oder dich wie eine feiges Huhn verhalten und abhauen?: kämpfen/abhauen")
if(entscheidung == "kämpfen"):
# Wiederhole Kampf bis einer nachgibt
while(True):
print(f"Es wird gekämpft!")
gegner.receive_damage(spieler.power + random.randint(0, 3))
if(gegner.health <= 0):
return True
if(gegner.health == 1):
print(f"Der Gegner wurde stärker, weil er kurz vor dem Sterben ist. Anime-logik!")
gegner.rage(true)
spieler.receive_damage(gegner.power + random.randint(0, 2))
if(spieler.health <= 0):
return False
...
else:
...
if __name__ == "__main__":
main()