`from random import randint
from time import sleep
from sys import exit
class Oyuncu:
def __init__(self, oyuncu="Oyuncu", rakip="Düşman", can=50, rakip_can = 50):
self.oyuncu = oyuncu
self.can = can
self.yedek_can = can
self.rakip_can = rakip_can
self.rakip = rakip
def saldır(self, rakip):
while True:
print("Saldırılıyor!")
sleep(3)
sayi = (self.yedek_can/10)* 2
random_damage = randint(1,sayi)
sonuç = randint(0,1)
if sonuç == 0:
print("Olamaz, Iskaladın!")
if sonuç == 1:
print(f"İnanılmaz, {self.oyuncu} oyuncusu {self.rakip} oyuncusuna {random_damage} hasar verdi!")
self.saldırı(rakip, random_damage)
self.sonucu_belirle()
break
def super_guc_kullan(self, rakip):
random_num = randint(1,100)
if random_num % 7 == 0:
random_dmg = randint(self.yedek_can/5,self.yedek_can/2)
self.saldırı(rakip, random_dmg)
print(f"Vay canına! {self.oyuncu} oyuncusu {self.rakip} oyuncusuna {random_dmg} hasar verdi!")
self.sonucu_belirle()
def saldırı(self, rakip, hasar):
self.rakip_can -= hasar
print(f"rakibin canı {self.rakip_can}")
def Savun(self):
self.yedek_can -= 10
def sonucu_belirle(self):
if self.rakip_can < 1:
print("Tebrikler, oyunu kazandın!")
exit()
if self.can < 1:
print("Tüh, rakip senden daha şanslı çıktı.")
exit()
Oyuncu_1 = input(“Oyuncu 1:”)
Oyuncu_2= input(“Oyuncu 2:”)
sayac = 1
while True:
if sayac % 2 == 0:
oyuncu = Oyuncu(Oyuncu_1, Oyuncu_2)
düşman = Oyuncu(Oyuncu_2, Oyuncu_1)
else:
oyuncu = Oyuncu(Oyuncu_2, Oyuncu_1)
düşman = Oyuncu(Oyuncu_1, Oyuncu_2)
secim = int(input("""Yapmak istediğiniz işlemi seçin:
1-Saldır
2-Özel güç kullan
3-Savun
"""))
if secim == 1:
oyuncu.saldır(düşman)
if secim == 2:
oyuncu.super_guc_kullan(düşman)
if secim == 3:
oyuncu.Savun()
sayac += 1`
Bu kodu çalıştırdığımda şöyle bir sonuç elde ediyorum.
İnanılmaz, Yazbel oyuncusu forum oyuncusuna 3 hasar verdi!
Kalan can: 47
İnanılmaz, Yazbel oyuncusu forum oyuncusuna 10 hasar verdi!
Kalan can: 40
İnanılmaz, Yazbel oyuncusu forum oyuncusuna 2 hasar verdi!
Kalan can: 48
Bunu nasıl düzeltebilirim, ve nerede hata yaptım?