commit 4a23bb2aa5057999ff5deb9953cde11fde369c32 Author: mantaru Date: Sun Sep 29 14:12:39 2024 +0200 add code diff --git a/main.py b/main.py new file mode 100644 index 0000000..91a0f12 --- /dev/null +++ b/main.py @@ -0,0 +1,63 @@ +from abc import ABC, abstractmethod +import random + +class Charakter(ABC): + def __init__(self, name, lebenspunkte, angriffsstaerke): + self.name = name + self.lebenspunkte = lebenspunkte + self.angriffsstaerke = angriffsstaerke + self.char_list = [] + + @abstractmethod + def angreifen(self): + pass + + @abstractmethod + def spezielle_faehigkeit(self): + pass + +class Kaempfer(Charakter): + def angreifen(self): + return self.angriffsstaerke + + def spezielle_faehigkeit(self): + return self.angriffsstaerke * 2 # Berserkerangriff + +class Magier(Charakter): + def angreifen(self): + return self.angriffsstaerke + random.randint(1, 5) # Zauberangriff + + def spezielle_faehigkeit(self): + return self.angriffsstaerke * 3 # Feuerball + +class Schurke(Charakter): + def angreifen(self): + return self.angriffsstaerke + random.randint(-2, 3) # Hinterhältiger Angriff + + def spezielle_faehigkeit(self): + return self.angriffsstaerke * 1.5 # Schleichen + +def kampf(char1, char2): + while char1.lebenspunkte > 0 and char2.lebenspunkte > 0: + # char1 greift an + schaden = char1.angreifen() + char2.lebenspunkte -= schaden + print(f"{char1.name} greift an und fügt {char2.name} {schaden} Schaden zu. Lebenspunkte: {char2.lebenspunkte}") + + if char2.lebenspunkte <= 0: + print(f"{char2.name} wurde besiegt!") + break + + # char2 greift an + schaden = char2.angreifen() + char1.lebenspunkte -= schaden + print(f"{char2.name} greift an und fügt {char1.name} {schaden} Schaden zu. Lebenspunkte: {char1.lebenspunkte}") + + if char1.lebenspunkte <= 0: + print(f"{char1.name} wurde besiegt!") + +# Beispiel für die Erstellung von Charakteren und einen Kampf +char1 = Kaempfer("Thor", 100, 15) +char2 = Magier("Gandalf", 80, 12) + +kampf(char1, char2) \ No newline at end of file