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