Math Quiz Oyunu

Basit bir matematik oyunu yaptım. Oyunda rastgele 4 işlemden biri seçiliyor ve şıklar oluşturuluyor sizden beklenen şıklar arasından doğru olanı bulmanız. Öğrendikçe bir puan tablosu ve zorluk seviyesi eklemeyi de düşünüyorum. Eklememi istediğiniz özellikleri belirtebilirsiniz.

import random
cevaplar = []
soru = ""
turSayisi = 0
puan = 0
cevap = 0
secenekler = {}
can = 3
def cevap_olustur():
    global cevap,cevaplar,secenekler
    while len(cevaplar) < 4:
        y_cevap = random.randint(cevap - 5,cevap + 5)
        if y_cevap != cevap and y_cevap not in cevaplar:
            cevaplar.append(y_cevap)
    cevaplar.sort()
    secenekler = {"a":cevaplar[0],"b":cevaplar[1],"c":cevaplar[2],"d":cevaplar[3]}
    return cevaplar
def toplama():
    global cevap,cevaplar
    sayi1 = random.randint(1,9999)
    sayi2 = random.randint(1,9999)
    cevap = sayi1 + sayi2
    cevaplar.append(cevap)
    return f"{sayi1} + {sayi2} = ?"
def cikarma():
    global cevap,cevaplar
    sayi1 = random.randint(1,9999)
    sayi2 = random.randint(1,9999)
    cevap = sayi1 - sayi2
    cevaplar.append(cevap)
    return f"{sayi1} - {sayi2} = ?"
def carpma():
    global cevap,cevaplar
    sayi1 = random.randint(1,9999)
    sayi2 = random.randint(1,9999)
    cevap = sayi1 * sayi2
    cevaplar.append(cevap)
    return f"{sayi1} * {sayi2} = ?"
def bolme():
    global cevap,cevaplar
    sayi1,sayi2 = 0,0
    while True:
        r_sayi1 = random.randint(1,9999)
        r_sayi2 = random.randint(1,9999)
        if r_sayi1 > r_sayi2 and r_sayi1 % r_sayi2 == 0:
            sayi1 = r_sayi1
            sayi2 = r_sayi2
            cevap = sayi1 / sayi2
            cevaplar.append(cevap)
            break
    return f"{sayi1} / {sayi2} = ?"
while can > 0:
    cevaplar = []
    turSayisi += 1
    print(turSayisi,". soru")
    islemModu = random.randint(1,4)
    if islemModu == 1:
        print(toplama())
        print(cevap_olustur())
        yanit = input("a/b/c/d").lower()
        if secenekler[yanit] == cevap:
            puan += 50
            print("Doğru yanıt! Puanınız:",puan)
        else:
            puan -= 50
            can -= 1
            print("Yanlış yanıt! Cevap",cevap,"olmalıydı.","Kalan can",can)
    if islemModu == 2:
        print(cikarma())
        print(cevap_olustur())
        yanit = input("a/b/c/d:").lower()
        if secenekler[yanit] == cevap:
            puan += 50
            print("Doğru yanıt! Puanınız:",puan)
        else:
            puan -= 50
            can -= 1
            print("Yanlış yanıt! Cevap",cevap,"olmalıydı.","Kalan can:",can)
    if islemModu == 3:
        print(carpma())
        print(cevap_olustur())
        yanit = input("a/b/c/d:").lower()
        if secenekler[yanit] == cevap:
            puan += 50
            print("Doğru yanıt! Puanınız:",puan)
        else:
            puan -= 50
            can -= 1
            print("Yanlış yanıt! Cevap",cevap,"olmalıydı.","Kalan can:",can)
    if islemModu == 4:
        print(bolme())
        print(cevap_olustur())
        yanit = input("a/b/c/d:").lower()
        if secenekler[yanit] == cevap:
            puan += 50
            print("Doğru yanıt! Puanınız:",puan)
        else:
            puan -= 50
            can -= 1
            print("Yanlış yanıt! Cevap",cevap,"olmalıydı.","Kalan can:",can)
print(f"\nOyun Sonucu\nToplam tur:{turSayisi}\nToplam puan:{puan}")

teşekkürler çalışma için

Bölme işleminde doğru sonuç float çıkıyor ve
bu şekilde soruluyor. Diğer seçenekler int.
Dolayısıyla kafa yormadan doğru cevap
belli oluyor.
Bu doğru cevap int olarak dönüştürülürse
uygun olacaktır.
Emeğinize sağlık…