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()