Python ile skorlu taş, kâğıt, makas oyunu
Bu başlıkta taş, kağıt, makas oyunu yapacağız. Oyunda biz seçim yaptıktan sonra bilgisayar da rastgele bir seçim yapacak ve kazanan +1 skor alacak. Oyunda 5 skoruna ulaşan kazanmış olacak. Bunun için “senin_skorun” ve “bilg_skor” isimli iki adet değişken tanımladık ve bunların başlangıç değerlerini sıfır yaptık.
Tüm bunlardan önce ilk olarak random modülünü programa çağırıyoruz. Bunun sebebi “random.choice” metodunu kullanarak bilgisayara rastgele seçim yaptırmaktır. Kodlarda “taş,kağıt,makas” şeklinde “secenek” isimli bir liste tanımladıktan sonra her bir kelimeye sayı ataması yapıyoruz. Bu şekilde “secenek” isimli listeden random.choice yardımıyla rastgele seçim yapılmasını sağlıyoruz. Kodlarımız aşağıda yer almaktadır.
import random secenek = ["taş", "kağıt", "makas"] taş = secenek[0] kağıt = secenek[1] makas = secenek[2] senin_skorun = 0 bilg_skor = 0 print( "Taş,kağıt,makas oyununa hoş geldiniz. Oyundan çıkmak için q tuşuna basınız.\n5 skoruna ulaşan kazanır, bol şans!!!\n") while True: bilg_secim = random.choice(secenek) secim = input("Sezgilerine güven. Taş mı kağıt mı makas mı? ") if secim == taş: if bilg_secim == taş: print("Bilgisayar taş seçti, sonuç: Berabere\n") elif bilg_secim == makas: senin_skorun = senin_skorun + 1 if senin_skorun == 5: print("Senin puanın: {} , Bilgisayarın puanı: {}\n".format(senin_skorun, bilg_skor)) print("Oyun bitti. Kazandınız!!!") break else: print("Bilgisayar makas seçti, sonuç: Kazandınız") print("Senin puanın: {} , Bilgisayarın puanı: {}\n".format(senin_skorun, bilg_skor)) else: bilg_skor = bilg_skor + 1 if bilg_skor == 5: print("Senin puanın: {} , Bilgisayarın puanı: {}\n".format(senin_skorun, bilg_skor)) print("Oyun bitti. Kaybettiniz...") break else: print("Bilgisayar kağıt seçti, sonuç: Kaybettiniz") print("Senin puanın: {} , Bilgisayarın puanı: {}\n".format(senin_skorun, bilg_skor)) elif secim == kağıt: if bilg_secim == kağıt: print("Bilgisayar kağıt seçti, sonuç: Berabere\n") elif bilg_secim == taş: senin_skorun = senin_skorun + 1 if senin_skorun == 5: print("Senin puanın: {} , Bilgisayarın puanı: {}\n".format(senin_skorun, bilg_skor)) print("Oyun bitti. Kazandınız!!!") break else: print("Bilgisayar taş seçti, sonuç: Kazandınız") print("Senin puanın: {} , Bilgisayarın puanı: {}\n".format(senin_skorun, bilg_skor)) else: bilg_skor = bilg_skor + 1 if bilg_skor == 5: print("Senin puanın: {} , Bilgisayarın puanı: {}\n".format(senin_skorun, bilg_skor)) print("Oyun bitti. Kaybettiniz...") break else: print("Bilgisayar makas seçti, sonuç: Kaybettiniz") print("Senin puanın: {} , Bilgisayarın puanı: {}\n".format(senin_skorun, bilg_skor)) elif secim == makas: if bilg_secim == makas: print("Bilgisayar makas seçti, sonuç: Berabere\n") elif bilg_secim == kağıt: senin_skorun = senin_skorun + 1 if senin_skorun == 5: print("Senin puanın: {} , Bilgisayarın puanı: {}\n".format(senin_skorun, bilg_skor)) print("Oyun bitti. Kazandınız!!!") break else: print("Bilgisayar kağıt seçti, sonuç: Kazandınız") print("Senin puanın: {} , Bilgisayarın puanı: {}\n".format(senin_skorun, bilg_skor)) else: bilg_skor = bilg_skor + 1 if bilg_skor == 5: print("Senin puanın: {} , Bilgisayarın puanı: {}\n".format(senin_skorun, bilg_skor)) print("Oyun bitti. Kaybettiniz...") break else: print("Bilgisayar taş seçti, sonuç: Kaybettiniz") print("Senin puanın: {} , Bilgisayarın puanı: {}\n".format(senin_skorun, bilg_skor)) else: if secim == "q": print("Çıkılıyor...") break
Bunun yanı sıra tekrarlayan bazı kodları fonksiyon içine alarak daha temiz bir görüntü elde edebiliriz. Bunun içi iki adet fonksiyon tanımlıyoruz. Ayrıca “modülünü” import ederek “sys.exit” metodu yardımıyla programdan çıkabiliriz
import random import sys secenek = ["taş","kağıt","makas"] taş = secenek[0] kağıt = secenek[1] makas = secenek[2] senin_skorun = 0 bilg_skor = 0 def sen_sonuc(senin_skorun,bilg_skor): if senin_skorun == 5: print("Senin puanın: {} , Bilgisayarın puanı: {}\n".format(senin_skorun, bilg_skor)) print("Oyun bitti. Kazandınız!!!") sys.exit() else: print("Bilgisayar {} seçti, sonuç: Kazandınız".format((bilg_secim))) print("Senin puanın: {} , Bilgisayarın puanı: {}\n".format(senin_skorun, bilg_skor)) return def bilg_sonuc(senin_skorun,bilg_skor): if bilg_skor == 5: print("Senin puanın: {} , Bilgisayarın puanı: {}\n".format(senin_skorun, bilg_skor)) print("Oyun bitti. Kaybettiniz...") sys.exit() else: print("Bilgisayar {} seçti, sonuç: Kaybettiniz".format((bilg_secim))) print("Senin puanın: {} , Bilgisayarın puanı: {}\n".format(senin_skorun, bilg_skor)) return print("Taş,kağıt,makas oyununa hoş geldiniz. Oyundan çıkmak için q tuşuna basınız.\n5 skoruna ulaşan kazanır, bol şans!!!\n") while True: bilg_secim = random.choice(secenek) secim = input("Sezgilerine güven. Taş mı kağıt mı makas mı? ") if secim == taş : if bilg_secim == taş : print("Bilgisayar taş seçti, sonuç: Berabere\n") elif bilg_secim == makas : senin_skorun += 1 sen_sonuc(senin_skorun,bilg_skor) else: bilg_skor += 1 bilg_sonuc(senin_skorun,bilg_skor) elif secim == kağıt : if bilg_secim == kağıt : print("Bilgisayar kağıt seçti, sonuç: Berabere\n") elif bilg_secim == taş : senin_skorun += 1 sen_sonuc(senin_skorun,bilg_skor) else: bilg_skor += 1 bilg_sonuc(senin_skorun,bilg_skor) elif secim == makas : if bilg_secim == makas : print("Bilgisayar makas seçti, sonuç: Berabere\n") elif bilg_secim == kağıt : senin_skorun += 1 sen_sonuc(senin_skorun,bilg_skor) else: bilg_skor += 1 bilg_sonuc(senin_skorun,bilg_skor) else: if secim == "q" : print("Çıkılıyor...") break