Python nesne tabanlı programlama sorunu

`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?

Her ne kadar kodları berbat bi şekilde atsam da çözümü buldum.
oyuncu = Oyuncu(Oyuncu_1, Oyuncu_2)
düşman = Oyuncu(Oyuncu_2, Oyuncu_1)
bunu yaparak her seferinde oyuncuyu baştan tanımlıyormuşum, ben de şöyle bir çözüm ürettim.
oyuncu, düşman = düşman, oyuncu
böyle yapınca sorunum çözüldü.

kodlarınızı ```` (x2) işaretleri arasına yazarak paylaşırsanız ya da kodunuzun tamamını seçerek bu işarete tıklarsanız aşağıdaki gibi görünecektir. İlk gönderiniz için tebrikler aramıza hoşgeldiniz.

Ekran Alıntısı

kod görünümü;

from os import system

system("cls")
system("echo off")

username = "nabukadnezar"

print("merhaba {}".format(username))

#bu bir örnektir. iyi forumlar