top of page

Üyelik Paketlerinde 25% İndirim İçin Kodun : "welcome"

Rock-Paper-Scissors Oyunu


Hands-on Mentor Projects
Hands-on Mentor Projects


Rock-Paper-Scissors Nedir?

Rock-Paper-Scissors (Taş-Kağıt-Makas), iki oyuncu arasında oynanan basit bir el oyunudur. Oyuncular aynı anda üç şekilden birini seçer: taş, kağıt veya makas. Kazanan, aşağıdaki kurallara göre belirlenir:


  • Taş makası kırar (taş kazanır)

  • Makas kağıdı keser (makas kazanır)

  • Kağıt taşı sarar (kağıt kazanır) Eğer oyuncular aynı şekli seçerse oyun berabere biter. Bu oyun, karar verme veya anlaşmazlıkları çözme amacıyla da kullanılabilir.


Proje Hedefleri ve Öğrenci Faydaları

Bu proje ile öğrenciler, temel Python bilgilerini kullanarak basit ve fonksiyonel programlar geliştirme becerilerini pekiştireceklerdir. Ayrıca, oyun simülasyonları ve kullanıcı etkileşimi konularında deneyim kazanacaklardır.


Projenin Hedef Çıktıları


  • Temel Python yapıları ve kontrol akışlarını kullanarak bir oyun simülasyonu oluşturma.

  • Kullanıcıdan veri alma ve bu verileri işleyerek oyun akışını yönetme.

  • Fonksiyonlar yardımıyla daha modüler ve okunabilir kod yazma.


Projenin Adım Adım Görevleri


  1. Olası hamleleri tanımlama.

  2. Kullanıcıdan hamle alma.

  3. Bilgisayardan rastgele bir hamle seçme.

  4. Kullanıcı ve bilgisayar hamlelerini karşılaştırarak sonucu belirleme.

  5. Oyunun sonucunu ekrana yazdırma.

  6. Fonksiyonlar kullanarak kodu daha modüler hale getirme.



Adım 1: Olası Hamleleri Tanımlama

İlk adım olarak, oyunda kullanılacak olası hamleler tanımlanacaktır.


# Olası hamleler
hamleler = ["taş", "kağıt", "makas"]

Bu kod parçası, oyunda kullanılacak olan olası hamleleri tanımlar.



Adım 2: Kullanıcıdan Hamle Alma

İkinci adımda, kullanıcıdan bir hamle alınacaktır.


# Kullanıcıdan hamle alma
kullanici_hamlesi = input("Taş, kağıt veya makas seçin: ").lower()
while kullanici_hamlesi not in hamleler:
    kullanici_hamlesi = input("Geçersiz hamle! Taş, kağıt veya makas seçin: ").lower()

Bu kod parçası, kullanıcıdan bir hamle alır ve geçerli bir hamle olup olmadığını kontrol eder. Kullanıcı geçerli bir hamle seçene kadar hamle istemeye devam eder.



Adım 3: Bilgisayardan Rastgele Bir Hamle Seçme

Üçüncü adımda, bilgisayardan rastgele bir hamle seçilecektir.


import random

# Bilgisayardan rastgele bir hamle seçme
bilgisayar_hamlesi = random.choice(hamleler)
print(f"Bilgisayarın hamlesi: {bilgisayar_hamlesi}")

Bu kod parçası, bilgisayardan rastgele bir hamle seçer ve ekrana yazdırır. random.choice() fonksiyonu, hamleler listesinden rastgele bir eleman seçmek için kullanılır.



Adım 4: Kullanıcı ve Bilgisayar Hamlelerini Karşılaştırarak Sonucu Belirleme

Dördüncü adımda, kullanıcı ve bilgisayar hamleleri karşılaştırılarak oyunun sonucu belirlenecektir.


# Kullanıcı ve bilgisayar hamlelerini karşılaştırarak sonucu belirleme
if kullanici_hamlesi == bilgisayar_hamlesi:
    sonuc = "Berabere!"
elif (kullanici_hamlesi == "taş" and bilgisayar_hamlesi == "makas") or \\\\
     (kullanici_hamlesi == "makas" and bilgisayar_hamlesi == "kağıt") or \\\\
     (kullanici_hamlesi == "kağıt" and bilgisayar_hamlesi == "taş"):
    sonuc = "Kazandınız!"
else:
    sonuc = "Kaybettiniz!"

Bu kod parçası, kullanıcı ve bilgisayar hamlelerini karşılaştırarak oyunun sonucunu belirler. Kullanıcı ve bilgisayar hamlelerinin eşleşmesine göre sonuç belirlenir.



Adım 5: Oyunun Sonucunu Ekrana Yazdırma

Beşinci adımda, oyunun sonucu ekrana yazdırılacaktır.


# Oyunun sonucunu ekrana yazdırma
print(sonuc)

Bu kod parçası, oyunun sonucunu ekrana yazdırır.



Adım 6: Fonksiyonlarla Çözüm


Kullanıcı Hamlesini Alma Fonksiyonu

Bu fonksiyon, kullanıcıdan geçerli bir hamle alır.


def kullanici_hamlesi_al():
    """Kullanıcıdan geçerli bir hamle alır."""
    hamleler = ["taş", "kağıt", "makas"]
    kullanici_hamlesi = input("Taş, kağıt veya makas seçin: ").lower()
    while kullanici_hamlesi not in hamleler:
        kullanici_hamlesi = input("Geçersiz hamle! Taş, kağıt veya makas seçin: ").lower()
    return kullanici_hamlesi

Bu fonksiyon, kullanıcıdan geçerli bir hamle alır ve döndürür.



Bilgisayar Hamlesini Seçme Fonksiyonu

Bu fonksiyon, bilgisayardan rastgele bir hamle seçer.


def bilgisayar_hamlesi_sec(hamleler):
    """Bilgisayardan rastgele bir hamle seçer."""
    return random.choice(hamleler)

Bu fonksiyon, bilgisayardan rastgele bir hamle seçer ve döndürür.



Oyunun Sonucunu Belirleme Fonksiyonu

Bu fonksiyon, kullanıcı ve bilgisayar hamlelerini karşılaştırarak oyunun sonucunu belirler.


def sonucu_belirle(kullanici_hamlesi, bilgisayar_hamlesi):
    """Kullanıcı ve bilgisayar hamlelerini karşılaştırarak oyunun sonucunu belirler."""
    if kullanici_hamlesi == bilgisayar_hamlesi:
        return "Berabere!"
    elif (kullanici_hamlesi == "taş" and bilgisayar_hamlesi == "makas") or \\\\
         (kullanici_hamlesi == "makas" and bilgisayar_hamlesi == "kağıt") or \\\\
         (kullanici_hamlesi == "kağıt" and bilgisayar_hamlesi == "taş"):
        return "Kazandınız!"
    else:
        return "Kaybettiniz!"

Bu fonksiyon, kullanıcı ve bilgisayar hamlelerini karşılaştırarak oyunun sonucunu belirler ve döndürür.



Oyunu Başlatma Fonksiyonu

Bu fonksiyon, Rock-Paper-Scissors oyununu başlatır ve oyunun akışını yönetir.


def oyunu_baslat():
    """Rock-Paper-Scissors oyununu başlatır."""
    hamleler = ["taş", "kağıt", "makas"]

    kullanici_hamlesi = kullanici_hamlesi_al()
    bilgisayar_hamlesi = bilgisayar_hamlesi_sec(hamleler)

    print(f"Bilgisayarın hamlesi: {bilgisayar_hamlesi}")

    sonuc = sonucu_belirle(kullanici_hamlesi, bilgisayar_hamlesi)

    print(sonuc)

# Oyunu başlatma
oyunu_baslat()

Bu fonksiyon, Rock-Paper-Scissors oyununu başlatır ve oyunun akışını yönetir. Kullanıcı ve bilgisayar hamlelerini alır, hamleleri karşılaştırır ve oyunun sonucunu ekrana yazdırır.


Kullanılan Konular

  • Veri Tipleri: Bu projede, listeler (hamleler) ve stringler (kullanıcı hamlesi, bilgisayar hamlesi) kullanılmıştır.

  • Listeler: Olası hamleler listeler şeklinde tutulmuştur.

  • Koşullu İfadeler: if-else yapıları, kullanıcı ve bilgisayar hamlelerini karşılaştırarak oyunun sonucunu belirlemek için kullanılmıştır.

  • Fonksiyonlar: Fonksiyonlar, kodun modüler ve tekrar kullanılabilir olmasını sağlamıştır.

  • Random Modülü: random.choice() fonksiyonu, hamleler listesinden rastgele bir eleman seçmek için kullanılmıştır.




 

Comments


Commenting has been turned off.
bottom of page