Python’da Taş-Kağıt-Makas Oyunu (Rock-Paper-Scissors Game)

Python’da Taş-Kağıt-Makas Oyunu (Rock-Paper-Scissors Game)

Bu makalemizde, çocukluğumuzda hemen hemen herkesin oynadığı veya bir şekilde bildiği Python’da taş-kağıt-makas oyununu anlatacağım.

Uygulama senaryosu
Kullanıcıya bilgi vermesi açısından kaç hakkının olduğunu ve seçeneklerinin neler olduğunu gösterelim sonra bu sahip olduğu hak sayısınca kullanıcıdan taş, kağıt veya makas seçeneklerden birini seçmesi ve karşı taraftan da bilgisayardan bir rastgele bir seçim yapmasını sağlayalım ve sonra kullanıcı seçimini ve bilgisayar seçimini karşılaştırıp kimin kimi yendiğini belirleyelim. kazananmaları halinde +3 puan, beraberlikleri halinde de taraflara 1’er puanı verelim.
Şimdi buraya kadar okuduysan devamına bakmadan sen yapmaya çalış sonradan da yapılışına bakarsın, eminim ki bunu yaparsın.😉

Öyleyse haydi kodlamaya başlayalım:

Yukarıda uygulama senaryosunda anlattığım gibi, burada kullanıcı rastgele bir seçim yapabilmesi için ilgili random kütüphanesini import random ile dahil ettim. kullanıcın kaç kez tahmin edeceğini hak değişkeninde belirledim. hak=4 belirleyip her tahmininde bunu bir adet azalttım ve sıfır  olunca da break ile döngüden çıkıp  programın bitmesini sağladım.
(global kullaniciPuan,PcPuan;)  şimdi şu ifadeyi anlatalım, fonksiyon içinde global tanımlamamın nedeni:

global kullaniciPuan, PcPuan ifadesi, kullaniciPuan ve PcPuan değişkenlerini fonksiyon içerisindeki yerel değişkenler yerine global değişkenler olarak tanımlamak için kullanılır.

Python’da, bir fonksiyon içerisinde bir değişken tanımlarsanız, varsayılan olarak bu değişken yerel bir değişken olarak kabul edilir. Bu durumda, fonksiyon içindeki değişiklikler yalnızca yerel değişkeni etkiler ve global değişkeni değiştirmez. Eğer kullaniciPuan ve PcPuan değişkenlerini global olarak kullanmak ve fonksiyon içindeki değişikliklerin bu global değişkenleri etkilemesini isterseniz, global anahtar kelimesini kullanarak bu değişkenlerin global değişkenler olduğunu belirtmeniz gerekir.

Bu örnekte, tas_kagit_makas() fonksiyonu içinde kullaniciPuan ve PcPuan değişkenlerini global olarak kullanmak için global kullaniciPuan, PcPuan ifadesi kullanılmıştır. Bu sayede, fonksiyon içinde yapılan değişiklikler, bu global değişkenleri etkileyecek ve değerlerini güncelleyecektir.

Kısacası fonksiyon içinde bulunan değişkenler yerel fonksiyon, dışındakiler ise globaldir, biz fonksiyon içindekilerinin başına global yazınca aslında siz de fonksiyon dışındakilerle aynısınız, yani siz de global değerlisiniz demiş oluruz.

 

bu kod parçasını anlatacak olursam:

Bu ifade, üç ayrı koşulun birleşimini kontrol eder:

  1. Kullanıcı “taş” seçtiğinde ve bilgisayar “makas” seçtiğinde.
  2. Kullanıcı “kağıt” seçtiğinde ve bilgisayar “taş” seçtiğinde.
  3. Kullanıcı “makas” seçtiğinde ve bilgisayar “kağıt” seçtiğinde.

Bu koşullardan herhangi biri doğru olduğunda, kullanıcı kazanır çünkü taş makası kırar, kağıt taşı sarar ve makas kağıdı keser.

Eğer bu koşullardan hiçbiri doğru değilse, kullanıcının kaybettiği ve bilgisayarın kazandığı sonucu elde edilir.

Burada or \ şeklinde yazılan  \  işareti, çok satırlı bir ifadeyi birden fazla satıra yaymak için kullanılan bir kaçış karakteridir. Python’da \  işareti, ifadeleri birden fazla satıra bölebilmenizi sağlar, böylece kodunuz daha okunabilir hale gelir.

\ işaretini kullanmasaydık aşağıdaki gibi elif komutunu tek satırda yazmak zorundaydık bu da kodun devamının diğer kısma taşıdığı, okunabilirlik açısından güzel olmadığını bize açıkça gösterir.

 

Özetle bu kod, kullanıcının “Taş”, “Kağıt” veya “Makas” seçeneklerinden birini seçerek bilgisayar ile karşılaştırdığı basit bir Taş-Kağıt-Makas oyunudur. Kullanıcı seçimini yapar ve bilgisayar rastgele bir seçim yapar. Ardından, kullanıcının seçimi ve bilgisayarın seçimi karşılaştırılır ve sonuç ekrana yazdırılır.

 

Benzer Yazılar

Gui Dersleri #8 | LabelFrame kullanımı ve TopLevel kullanımı

Python 7 ay önce

Arkadaşlar merhaba bu makalemizde sizlere python’da LabelFrame kullanımı ve TopLevel kullanımının nasıl yappacağımızı anlatacağım.  Ayrıca size bu konu hakkında çektiğim video’yu bırakıyorum isteyen video izler isteyen aşağıdaki makaleyi okur. Şimdiden iyi seyirler ve iyi okumalar dilerim. ☺ LabelFrame kullanımı : LabelFrame widget’ı, bir çerçeve içindeki bir etiketle birlikte bir grup widget’ı oluşturmanıza olanak tanır. LabelFrame widget’ı, bir Frame widget’ının özelliklerine sahiptir ve ayrıca bir başlık etiketi içerir. Bu widget’lar, diğer widget’ları gruplandırmak için kullanılabilir.

  yukarıdaki kodumuzda görüleceği üzere formlarda widgetların daha düzenli görünmesini sağlayan labelFrame’mizi  kisi_bilgileri=LabelFrame(pencere,text=”nüfus örneği”, width=300,height=200) şeklinde yükseklik ve genişlik değerleri vererek tanımladık. Bundan sonra ise ekleyeceğimiz widgetları pencere üzerinde tanımlamak yerine kisi_ad=Label(kisi_bilgileri,text=”ad soyad”) buradaki gibi kisi_bilgileri adında tanımladığım LabelFrame değişkeni üzerine eklediğimizi belirtiyoruz. kisi_ad_giris.place(x=120,y=20) burada da Entry nesnesini place özelliği ile x ve y değerlerini vererek konumlandırıyoruz. kodumuzun ekran çıktısı aşağıdaki gibidir:   TopLevel Kullanımı: Toplevel widget’ı ise, ana pencereye bağlı olmayan bir pencere oluşturmanızı sağlar. […]

Python Dersleri | Bayrama özel uygulama yapımı

Python 7 ay önce

Arkadaşlar Merhabalar bugunkü makalemizde bayramda aklıma gelen bir uygulama senaryosunu gerçekleştirmesini size anlatıyor olacağım. Bayramda vakit ayırıp bunu yeni gerçekleştirdim umarım beğenirsiniz. Bayramınızı kutluyorum şimdiden iyi seyirler ve iyi okumalar dilerim.

Burada yapıcı(constructor ) fonksiyonumuzu tanımladık self belirteci  ile burada attribute’lar ve fonksiyonlara ulaşıyor oalcağız.

burada pencere ayarlamasınız yaptık.

burada soru etkietimizi ve yanlarından evet ve hayır butonlarını ekledik burada grid(row,column) yapısına değinecek olursak elemanlarımı grid şeklinde bize yerleştirmemizi sağlayacaktır.

burada ise buttonlarımızın command parametresine karşılık gelen fonksiyonlarımızı doldurduk.

Burda da güncelle fonksiyonumuz içinde gerekli tanımları ve durumları yaptık .

Gui Dersleri #7 | Canvas kullanımı, Scale kullanımı ve Scrollbar kullanımı ile ilgili işlemler

Python 7 ay önce

Arkadaşlar merhaba bu makalemizde sizlere Canvas(Tuval) kullanımı, Scale(ölçek) kullanımı ve Scrollbar(Kaydırma çubuğu) kullanımının nasıl oluşturacağını anlatıyor olacağım ve bunlarla ilgili örnek uygulama yapacağım. Ayrıca size bununla ilgili yukarıda bir örnek video bırakıyorum isteyen video izler isteyen aşağıdaki makaleyi okur. Şimdiden iyi seyirler ve iyi okumalar dilerim. ☺ Canvas(Tuval) kullanımı: Canvas widgeti, Tkinter’da kullanılan bir çizim alanıdır. Bu widgeti kullanarak grafikler, şekiller, metinler ve diğer çizim öğelerini ekrana çizebilirsiniz. Canvas, çeşitli interaktif grafik uygulamaları ve veri görselleştirme için kullanışlıdır.

  Bu örnekte, Canvas sınıfını kullanarak bir tuval oluşturuyoruz. width ve height parametreleri tuvalin boyutlarını belirtir. create_rectangle() ve create_oval() metotlarıyla dikdörtgen ve elips gibi çizimler yapabiliriz. Ayrıca create_text() metoduyla da belirtilen özellikte bir text yazısı yazar. Kodlarımızın ekran çıktısı aşağıdaki gibidir:   Scale(Ölçek) kullanımı Scale widgeti, Tkinter’da kullanılan bir kaydırma çubuğu bileşenidir. Kullanıcının bir aralıktaki bir değeri seçmesini sağlar. Genellikle çeşitli ayarların kontrol edilmesi veya değerlerin seçilmesi için kullanılır.

  […]

0 Yorum

Yorum Yaz

Rastgele

Web sitemiz, gezinme deneyiminizi ve ilgili bilgileri sağlamak için çerezleri kullanır. Web sitemizi kullanmaya devam etmeden önce, şunları kabul etmiş olursunuz.