Class içerisinde fonksiyon problemi

Merhabalar, class kullanarak xox oyunu yazıyorum. Yalnız oyunKontrol fonksiyonunun döndürdüğü false değerinden sonra kazanan ekranı yazdırması ve kapanması gerekiyor ama oyun devam ediyor. Yardımcı olur musunuz?

class Oyun:
def __init__(self):
    self.tahta = [["()", "()", "()", ], ["()", "()", "()"], ["()", "()", "()"]]
    self.durum = True
    self.hamle = 0

def oyna(self):
    if self.hamle % 2 == 0:
        self.p1secim()
    else:
        self.p2secim()

    self.durum = self.oyunKontrol()

    if not self.durum:
        self.tahtaGoster()

        if self.hamle % 2 == 0:
            kazanan = "X"
        else:
            kazanan = "O"

        print("Oyun sonlandı! Kazanan = {} ".format(kazanan))

    self.hamle += 1

def p1secim(self):
    self.tahtaGoster()
    print("1.Oyuncu")
    satir = int(input("Satırı giriniz: "))
    while satir < 1 or satir > 3:
        satir = int(input("Girilecek satır değeri 1-3 arasında olmalıdır, tekrar giriniz: "))
    sutun = int(input("Sütunu giriniz: "))
    while sutun < 1 or sutun > 3:
        sutun = int(input("Girilecek sutun değeri 1-3 arasında olmalıdır, tekrar giriniz: "))

    if self.doluMu(satir, sutun):
        print("Belirtilen alan dolu, tekrar deneyiniz: ")
        self.p1secim()
    else:
        self.tahta[satir-1][sutun-1] = "X"

def p2secim(self):
    self.tahtaGoster()
    print("2.Oyuncu")
    satir = int(input("Satırı giriniz: "))
    while satir < 1 or satir > 3:
        satir = int(input("Girilecek satır değeri 1-3 arasında olmalıdır, tekrar giriniz: "))
    sutun = int(input("Sütunu giriniz: "))
    while sutun < 1 or sutun > 3:
        sutun = int(input("Girilecek sutun değeri 1-3 arasında olmalıdır, tekrar giriniz: "))

    if self.doluMu(satir, sutun):
        print("Belirtilen alan dolu, tekrar deneyiniz: ")
        self.p2secim()
    else:
        self.tahta[satir-1][sutun-1] = "O"

def doluMu(self, satir, sutun):
    if self.tahta[satir-1][sutun-1] != "()":
        return True
    else:
        return False

def tahtaGoster(self):
    for i in self.tahta:
        for j in i:
            print(j, end=" ")

        print("\n")

def oyunKontrol(self):
    # Yatay Kontrol
    if [self.tahta[0][0], self.tahta[0][1], self.tahta[0][2]] == ["X", "x", "x"] or [self.tahta[0][0], self.tahta[0][1], self.tahta[0][2]] == ["O", "O", "O"]:
        return False
    if [self.tahta[1][0], self.tahta[1][1], self.tahta[1][2]] == ["X", "x", "x"] or [self.tahta[1][0], self.tahta[1][1], self.tahta[1][2]] == ["O", "O", "O"]:
        return False
    if [self.tahta[2][0], self.tahta[2][1], self.tahta[2][2]] == ["X", "x", "x"] or [self.tahta[2][0], self.tahta[2][1], self.tahta[2][2]] == ["O", "O", "O"]:
        return False

    # Dikey Kontrol
    if [self.tahta[0][0], self.tahta[1][0], self.tahta[2][0]] == ["X", "x", "x"] or [self.tahta[0][0], self.tahta[1][0], self.tahta[2][0]] == ["O", "O", "O"]:
        return False
    if [self.tahta[0][1], self.tahta[1][1], self.tahta[2][1]] == ["X", "x", "x"] or [self.tahta[0][1], self.tahta[1][1], self.tahta[2][1]] == ["O", "O", "O"]:
        return False
    if [self.tahta[0][2], self.tahta[1][2], self.tahta[2][2]] == ["X", "x", "x"] or [self.tahta[0][2], self.tahta[1][2], self.tahta[2][2]] == ["O", "O", "O"]:
        return False

    # Çapraz Kontrol
    if [self.tahta[0][0], self.tahta[1][1], self.tahta[2][2]] == ["X", "x", "x"] or [self.tahta[0][0], self.tahta[1][1], self.tahta[2][2]] == ["O", "O", "O"]:
        return False
    if [self.tahta[0][2], self.tahta[1][1], self.tahta[2][0]] == ["X", "x", "x"] or [self.tahta[0][2], self.tahta[1][1], self.tahta[2][0]] == ["O", "O", "O"]:
        return False

    return True


oyun = Oyun()

while oyun.durum:
    oyun.oyna()

["X", "X", "X"]

Ne demek istediğinizi anlamadım. Açıklar mısınız?

İlki büyük "X" diğer ikisi küçük "x"

Gözümden kaçmış, Çok teşekkür ederim.

rica ederim, elinize sağlık bu arada güzel bir oyun / kod olmuş

1 Beğeni

Teşekkürler güzel Yorumlarınız için.