add code
This commit is contained in:
commit
4a23bb2aa5
63
main.py
Normal file
63
main.py
Normal file
@ -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)
|
Loading…
Reference in New Issue
Block a user