Du definierst eine Funktion und verwendest ihren Rückgabewert.
def verdoppeln(zahl):
return zahl * 2
ergebnis = verdoppeln(4)
print(ergebnis)
def definiert eine Funktion. Der Parameter zahl erhält beim Aufruf hier den Wert 4. return gibt das Ergebnis zurück, das in ergebnis gespeichert wird. Die Ausgabe ist 8. Die Definition alleine führt den Funktionskörper noch nicht aus. return gibt auch keinen Text im Terminal aus; dafür brauchst du print().
verdoppeln(7) zurück?spieler_leben auf 100 und monster_leben auf 30.angreifen(schaden). Gib darin zunächst einfach schaden zurück.HP steht für Lebenspunkte.angreifen(10) auf und speichere das Ergebnis in schaden.schaden von monster_leben ab und speichere den neuen Wert.Die Funktion gibt absichtlich nur den übergebenen Wert zurück. Das Abziehen passiert danach mit monster_leben = monster_leben - schaden. Die Spielerleben sind vorbereitet, werden aber noch nicht verwendet. Das Grundspiel zeigt einen Angriff, keinen Gegenangriff.
Erwartet werden 30 HP, 10 Schaden und danach 20 HP. Ändere den Aufruf zu angreifen(7): Nun müssen 23 HP bleiben. Die Funktionsdefinition muss vor dem Aufruf stehen.
Schreibe heilen(leben), das leben + 10 zurückgibt. Speichere das Ergebnis des Aufrufs in spieler_leben und gib es aus. Wie könntest du die Heilung auf höchstens 100 Leben begrenzen?
Vergleiche erst nach deinem eigenen Versuch. Dieser Code enthält das vollständige Grundspiel; die freiwilligen Zusatzaufgaben sind nicht eingebaut.
Datei: beispiele/mini-games/08_monsterkampf.py
print("=== MONSTERKAMPF ===")
spieler_leben = 100
monster_leben = 30
def angreifen(schaden):
return schaden
print("Monster:", monster_leben, "HP")
schaden = angreifen(10)
monster_leben = monster_leben - schaden
print("Du verursachst", schaden, "Schaden.")
print("Monster:", monster_leben, "HP")