Python ile Taş, Kağıt, Makas Oyunu

Taş, kağıt, makas gibi küçük kodlar yazmak, küçük oyunlar geliştirmek o dili pekiştirmek için mükemmel bir yöntemdir. Kendimizi geliştirirken ayrıca ortaya kendimizin yaptığı bir ürün çıkarmış oluyor.

Bu yazıda sizlere adım adım ne yapacağımızı anlatacağım. Ayrıca yazının sonunda kodun tam halini bulabilirsiniz.

Random Modülü

Bu oyunda bilgisayarın ve bizim adet seçenekten birini seçmesi lazım. Bilgisayarın rastgele bir seçim yapması içinse random modülünü kullanacağız. Random modülünü yüklemek için konsolumuza:

pip install random

Komutunu giriyoruz. Genellikle Python’un kendisi ile beraber gelen bir paket. Fakat emin değilseniz bu komut ile indirebilirsiniz.

Bilgisayarım Seçimi

Önceki bölümde de bilgisayarın üç seçimden birini seçmesi gerektiğine deyinmiştik. Bilgisayarın seçimi yapması için bir liste oluşturuyoruz.

pc =  ["rock", "paper", "scissors"]
secimpc = random.choice(pc)

Seçimi bilgisayarın yapacağı için pc isimli bir liste oluşturuyoruz. Listeden rastgele bir seçim yapmak içinse random.choice() fonksiyonunu kullanıyoruz.

Kullanıcının Seçimi

Kullanıcının seçimini ise input şeklinde alacağız. Kullanıcının “Taş”, “Kağıt” veya “Makas”‘ı seçmesi gerekiyor.

secimuser = str(input("Taş, Kağıt veya Makas?: ")).lower()

Kodun sonunada CAPS LOCK konusunda herhangi bir sorun olmaması için .lower() fonksiyonunu kullanıyoruz. Böylece kullanıcının girdisi küçük harflere dönüşecek.

Oluşacak Durumlar

If, elif gibi durumlara geçmeden önce hangi durumları ele alacağımızı önceden görmemiz bide kolaylık sağlar. Bu yüzden yorum yaratarak oluşacak durumları teker teker yazıyoruz.

"""
Oluşacak Durumlar: 
taş - taş
taş - kağıt
taş - makas

kağıt - taş
kağıt - kağıt
kağıt - makas

makas - taş
makas - kağıtr 
makas - makas
if (secimuser = "x"), (secimpc = "x")
"""

If, Elif Durumları

Kodumuzun son kısmına geldik. Bu kısım diğer adımlara göre biraz daha uzun. Fakat yazacağımız kodlarda bir değişiklik yok. Tek yapacağımız şey her durumu ele almak. Yukarıda yorum olarak yazdığımız her durumu koda dönüştüreceğiz.

if secimuser == "tas" and secimpc == "tas":
   print("Taş ve taş berabere!")

elif secimuser == "tas" and secimpc == "kagit":
   print("Kağıt taşı sarar. Bilgisayar kazandı :(")
    
elif secimuser == "tas" and secimpc == "makas":
   print("Taş makası kırar. Sen kazandın!")

elif secimuser == "kagit" and secimpc == "tas":
   print("Kağıt taşı sarar. Sen kazandın!")
    
elif secimuser == "kagit" and secimpc == "kagit":
   print("Kağıt ve kağıt. Berabere!")
    
elif secimuser == "kagit" and secimpc == "makas":
   print("Makas kağıdı keser. Kaybettin :(")

elif secimuser == "makas" and secimpc == "tas":
   print("Taş makası kırar. Kaybettin :(")

elif secimuser == "makas" and secimpc == "kagit":
   print("Makas kağıdı keser. Kazandın!")

elif secimuser == "makas" and secimpc == "makas":
   print("Makas ve makas. Berabere!")

Böylece kodumuzun sonuna geldik. Eğer tam koduda isterseniz aşağıda:

pc =  ["rock", "paper", "scissors"]
secimpc = random.choice(pc)

secimuser = str(input("Taş, Kağıt veya Makas?: ")).lower()

"""
Oluşacak Durumlar: 
taş - taş
taş - kağıt
taş - makas

kağıt - taş
kağıt - kağıt
kağıt - makas

makas - taş
makas - kağıtr 
makas - makas
if (secimuser = "x"), (secimpc = "x")
"""
if secimuser == "tas" and secimpc == "tas":
   print("Taş ve taş berabere!")

elif secimuser == "tas" and secimpc == "kagit":
   print("Kağıt taşı sarar. Bilgisayar kazandı :(")
    
elif secimuser == "tas" and secimpc == "makas":
   print("Taş makası kırar. Sen kazandın!")

elif secimuser == "kagit" and secimpc == "tas":
   print("Kağıt taşı sarar. Sen kazandın!")
    
elif secimuser == "kagit" and secimpc == "kagit":
   print("Kağıt ve kağıt. Berabere!")
    
elif secimuser == "kagit" and secimpc == "makas":
   print("Makas kağıdı keser. Kaybettin :(")

elif secimuser == "makas" and secimpc == "tas":
   print("Taş makası kırar. Kaybettin :(")

elif secimuser == "makas" and secimpc == "kagit":
   print("Makas kağıdı keser. Kazandın!")

elif secimuser == "makas" and secimpc == "makas":
   print("Makas ve makas. Berabere!")

Leave a Reply

Your email address will not be published. Required fields are marked *