Python ile Taş Kağıt Makas Oyunu Kodlama
Bu örneğimizde, Python programlama dilini kullanarak “taş – kağıt – makas” adlı oyunu kodlayacağız. Oyunun kuralları aşağıdaki gibidir:
- Taş, makası kırarak yener.
- Kağıt, taşı sararak yener.
- Makas, kağıdı keserek yener.
Kodlama rastgelelik içerdiği için random modülü kullanılacaktır. Kullanıcıdan veri giriş olacağı için input () fonksiyonundan ve koşul test edileceği için if-else ifadelerinden yararlanılmıştır. Ayrıca kullanıcı, tekrar tekrar oynayabilsin diye döngü içine aldık ve bunun için while döngüsünü kullandık. Bakınız:
import random
oyun_resimleri = ['''taş:
_______
---' ____
(_____)
(_____)
(____)
---.__(___)
''',
'''kağıt:
_______
---' ____)____
______)
_______)
_______)
---.__________)
''',
'''makas:
_______
---' ____)____
______)
__________)
(____)
---.__(___)
''']
devam = "evet"
while devam.lower() == "evet":
insan_secimi = int(input('''Taş, kağıt, makas? "Taş" seçmek için "0", "kağıt" seçmek için "1" ve "makas" seçmek için "2" rakamına basın...\n'''))
if 0 <= insan_secimi <= 2:
print("Seçiminiz...")
print(oyun_resimleri[insan_secimi])
bilgisayar_secimi = random.randint(0, 2)
print("Bilgisayar seçiyor...")
print(oyun_resimleri[bilgisayar_secimi])
if insan_secimi == 0 and bilgisayar_secimi == 2:
print("Kazandınız!")
elif bilgisayar_secimi == 0 and insan_secimi == 2:
print("Kaybettiniz!")
elif bilgisayar_secimi > insan_secimi:
print("Kaybettiniz")
elif insan_secimi > bilgisayar_secimi:
print("Kazandınız!")
elif bilgisayar_secimi == insan_secimi:
print("Berabere kaldınız!")
else:
print("Geçersiz değer girdiniz...")
devam = input("Tekrar oynamak ister misiniz? (evet/hayır): ")
- İlk olarak, taş, kağıt ve makas resimleri bir liste içerisine alınır.
- Daha sonra, kullanıcıdan taş, kağıt veya makas seçimini yapması istenir. Kullanıcı 0, 1 veya 2 sayılarından birini girer.
- Eğer kullanıcı 0, 1 veya 2 sayılarından birini girdiyse, seçtiği değer ve bilgisayarın rastgele seçtiği değer ekrana yazdırılır.
- Daha sonra, kazanan belirlenir:
- Kullanıcının ve bilgisayarın seçimleri arasındaki fark modulo 3 alınır. Bu sonuca göre:
- 0 ise, yani seçimler aynı ise, berabere kalınmıştır.
- 1 ise, yani bilgisayarın seçimi, kullanıcının seçiminden bir sonraki seçim ise, kullanıcı kaybetmiştir.
- 2 ise, yani kullanıcının seçimi, bilgisayarın seçiminden bir sonraki seçim ise, kullanıcı kazanmıştır.
- Kullanıcının ve bilgisayarın seçimleri arasındaki fark modulo 3 alınır. Bu sonuca göre:
- Kazanan belirlendikten sonra sonuç ekrana yazdırılır ve program sonlanır.
- Eğer kullanıcı 0, 1 veya 2 dışında bir değer girerse, ‘Geçersiz değer girdiniz…’ yazdırılır ve program sonlanır.