Python Math Quiz

Oyun rastgele bir biçimde dört işlemden birini seçiyor ve şık oluşturuyor. Sizden istenen doğru şıkkı yazmanız. 3 defa yanlış yapmanız halinde oyun sona eriyor. 

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}")

Hiç yorum yok:

Yorum Gönder