Python ile Sayı Tahmini Oyunu

Python ile sayı tahmini oyunu aşağıdaki durumları ışığında kodlanacaktır.

1. Birinci çözümümüzde aşağıdaki adımları kullanacağız:

  • Bilgisayar 1 ile 100 arasında rastgele bir sayı tutsun
  • Kullanıcıya oynamak istiyor mu diye sorulsun eğer evetse yanlış cevaplarda ipucu versin: Eğer kullanıcının tahmini bilgisayarın tuttuğu sayıdan büyükse, küçük bir sayı tutmasını söylesin. Eğer değilse tam tersini yapsın
  • Kaç tahminde kullanıcının tahmin edebildiği hesaplansın
  • Kullanıcı doğru tahmin ederse tekrar oynayıp oynamak istemediği sorulsun
#Python ile Sayı Tahmini Oyunu
import random
print("Sayı tahmin etme oyununa hoş geldin!")
oynamak_istiyor_musun = "Evet"
while oynamak_istiyor_musun == "Evet":
    cevap = random.randint(1, 100)
    tahmin = int(input("1 ile 100 arasındaki sayıyı tahmin et!"))
    hak = 1
    while tahmin != cevap:
        if tahmin > cevap:
            print("Yanlış, bir dahakine daha küçük bir sayı tahmin et!")
        if tahmin < cevap:
            print("Yanlış, bir dahakine daha büyük bir sayı tahmin et!")
        tahmin = int(input("1 ile 100 arasındaki sayıyı tahmin et!"))
        hak += 1
    print(f"Tebrikler, kazandın! kazanan tahmin: {cevap}")
    oynamak_istiyor_musun = input("Yeni bir oyun atmak istiyor musun? 'Evet', 'Hayır' \n")

2. Soruyu biraz değiştirelim:

  • Kullanıcıya kolaySeviye ve zorSeviye olarak adlandırılan 2 oynama modu sunulacak.
  • Zor modu seçen kullanıcının 5, kolay modu seçen kullanıcının ise 10 hakkı olacak.
  • Kullanıcı tahmini tutturursa ekrana “Oyunu Kazandınız!” yazdır.
  • Kullanıcının tahmini bilgisayarın tahmininden büyük ise “Daha küçük bir sayı tahmin ediniz!” yazısını ekrana yazdır ve kullanıcı varsa bir sonraki tahminini yapsın
  • Eğer kullanıcının tahmini bilgisayarın tahmininden küçük ise “Daha büyük bir sayı tahmin ediniz!” yazısını ekrana yazdır ve kullanıcı varsa bir sonraki tahminini yapsın

Çözüm için fonksiyonlar, while döngüsü ve if-elif-else deyimleri kullanılmıştır:

#Python ile Sayı Tahmini Oyunu 
from random import randint
kolaySeviyeHak = 10
zorSeviyeHak = 5
#Tahmini kontrol eden fonksiyon
def tahminKontrol (seninTahminin, bilgisayarTuttu, hak):
  if seninTahminin > bilgisayarTuttu:
    print ("Bir dahakine küçük bir sayı tahmin et!")
    return hak - 1
  elif seninTahminin < bilgisayarTuttu:
    print ("Bir dahakine büyük bir sayı tahmin et!")
    return hak - 1
  else:
    print ("Tabrikler, kazandın!")
    
    
#zorluk seviyesini ayarlayan bir fonksiyon yaz.
def zorlukSeviyesi ():
  seviye = input ('Zorluk seviyesini seçin: "zor", "kolay')
  if seviye == "zor":
    print ("5 tahmin hakkın var.")
    return zorSeviyeHak
  else:
    print ("10 tahmin hakkın var.")
    return kolaySeviyeHak
def tahminOyunu ():
  #1 ile 100 arasında rastgele bir sayı seçtir.
  print ("Bilgisayar 1-100 arasında bir sayı seçti.")
  bilgisayarTuttu = randint (1, 100)
  
  
  hak = zorlukSeviyesi ()
  
  #hakkı bitene kadar oyun devam etsin.
  seninTahminin = 0
  while seninTahminin != bilgisayarTuttu:
    #Tahmin yanlışsa hakkı bir düşsün
    print (f"kalan tahmin hakkın {hak}")
    #Kullanıcıdan bilgisayarın tuttuğu sayıyı tahmin etmesini iste
    seninTahminin = int (input ("Sence bu sayı nedir?"))
    hak = tahminKontrol (seninTahminin, bilgisayarTuttu, hak)
    if hak == 0:
      print ("Tahmin hakkın bitti, oyunu kaybettin!")
      return
    
tahminOyunu ()  

Yukarıdaki çözümü fonksiyon olmadan çözelim:

import random
print("Sayı tahmin etme oyununa hoş geldin!")
oynamak_istiyor_musun = "Evet"
while oynamak_istiyor_musun == "Evet":
    cevap = random.randint(1, 100)
    zorlukSeviyesi = input("Zorluk seviyesi nasıl olsun: 'Kolay','Zor' ")
    tahmin = int(input("1 ile 100 arasındaki sayıyı tahmin et!\n"))
    hak = 1
    if zorlukSeviyesi == "Zor":
        while tahmin != cevap and hak < 6:
            if tahmin > cevap:
                print("Yanlış, bir dahakine daha küçük bir sayı tahmin et!")
            elif tahmin < cevap:
                print("Yanlış, bir dahakine daha büyük bir sayı tahmin et!")
            tahmin = int(input("1 ile 100 arasındaki sayıyı tahmin et!\n"))
            hak += 1
        if hak == 6:
            print("Hakkın bitti, kaybettin!")
        elif tahmin == cevap:
            print(f"Tebrikler, kazandın! kazanan tahmin: {cevap}")
        oynamak_istiyor_musun = input("Yeni bir oyun atmak istiyor musun? 'Evet', 'Hayır'\n")
    elif zorlukSeviyesi == "Kolay":
        while tahmin != cevap and hak < 11:
            if tahmin > cevap:
                print("Yanlış, bir dahakine daha küçük bir sayı tahmin et!")
            elif tahmin < cevap:
                print("Yanlış, bir dahakine daha büyük bir sayı tahmin et!")
            tahmin = int(input("1 ile 100 arasındaki sayıyı tahmin et!\n"))
            hak += 1
        if hak == 10:
            print("Hakkın bitti, kaybettin!")
        elif tahmin == cevap:
            print(f"Tebrikler, kazandın! kazanan tahmin: {cevap}")
        oynamak_istiyor_musun = input("Yeni bir oyun atmak istiyor musun? 'Evet', 'Hayır'\n")

3. Alternatif bir çözüm yolu için:

#Python ile Sayı Tahmini Oyunu
from random import randint
kolaySeviyeHak = 10
zorSeviyeHak = 5
# zorluk seviyesi yaz
def zorluk_seviyesi():
    seviye_tercihi = input("Oyun zorluğunu seçiniz. 'Kolay','Zor'\n").lower()
    if seviye_tercihi == "kolay":
        print("Oyunu kazanabilmek için 10 hakkın var!")
        return kolaySeviyeHak
    else:
        print("Oyunu kazanabilmek için 5 hakkın var!")
        return zorSeviyeHak
def tahmin_oyunu():
    print("Bilgisayar 1 ile 100 arasında bir sayıyı aklından tuttu.")
    bilgisayar_tuttu = randint(1, 100)
    devam_et = True
    kalan_hak = zorluk_seviyesi()
    while devam_et:
        senin_tahminin = int(input("Bilgisayarın aklından tuttuğu sayı nedir?"))
        if senin_tahminin > bilgisayar_tuttu:
            print("Fazla attın, bir sonrakine küçük bir sayı seç!\n")
            kalan_hak -= 1
        elif senin_tahminin < bilgisayar_tuttu:
            print("Ufak attın, bir dahakine büyük bir sayı seç!\n")
            kalan_hak -= 1
        else:
            print("Tabrikler, kazandın!")
            devam_et = False
            yeni_oyun = input("Yeni bir oyun oynamaya ne dersin? 'Evet','Hayır'\n").lower()
            if yeni_oyun == "evet":
                tahmin_oyunu()
            else:
                devam_et = False
        if kalan_hak == 0:
            print("Hakkın bitti, oyunu kaybettin!")
            devam_et = False
            yeni_oyun = input("Yeni bir oyun oynamaya ne dersin? 'Evet','Hayır'\n").lower()
            if yeni_oyun == "evet":
                tahmin_oyunu()
            else:
                devam_et = False
tahmin_oyunu()

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu