Kilka uwag co do kodu:
Mieszanka językowa polski i angielski. JAK TO WYGLĄDA ?
wróg.attack(gracz)
Wiele razy importujesz random. Po co ?
W obu klasach metody się powtarzają. Polecam stworzyć klasę bazową i dziedziczyć z niej.
https://www.python.org/dev/peps/pep-0008/
_____________________________________________________________________________________________________
Aby rozwiązać twój problem najlepiej umieścić kod pętli w klasie, stworzyć parametr odpowiadający za wyjście z pętli, a następnie przekazać klasę ( czyli parametr self ) do klasy Player i Creature i w metodzie die() ustawić wyjście z pętli. Strasznie zawiłe, lepiej spójrz na kod.
klasa główna
class Main:
def __init__(self):
self.go_out_loop = False
self.player = Player(self)
self.opponent = Creature(self)
self.loop()
def loop(self):
while not self.go_out_loop:
print("""
0 - wyjście z gry
1 - standardowy atak
2 - atak specjalny (-20 energii)
""")
choice = input("Wybierasz: ")
if choice == "0":
self.go_out_loop = True
print("Do widzenia")
elif choice == "1":
self.player.basic_attack(self.opponent)
elif choice == "2":
self.player.special_attack(self.opponent)
else:
print("Nie trafiłeś w klawisz? Przykro mi, tracisz kolejkę...")
input("Wciśnij ENTER")
if __name__ == '__main__':
loop = Main()
i w klasie Player
import random
class Player:
def __init__(self, main_class_object, life=100, energy=100):
self.main_class_object = main_class_object
# Your code
def die(self):
self.main_class_object.go_out_loop = True
# Your code
# Your code
Pozdrawiam.