top of page

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

Hangman Oyunu


Hands-on Mentor Projects
Hands-on Mentor Projects


Hangman Nedir?

Hangman, kelime tahminine dayalı bir oyundur. Oyuncu, gizli bir kelimenin harflerini tahmin etmeye çalışır. Yanlış tahminler yapıldıkça, bir "adam" asılma tehlikesiyle karşı karşıya gelir. Oyunun amacı, adam tamamen asılmadan önce kelimeyi doğru tahmin etmektir. Hangman, eğlenceli ve eğitici bir oyun olarak bilinir ve özellikle kelime dağarcığını geliştirmek için oynanır.


Proje Hedefleri ve Öğrenci Faydaları

Bu proje ile öğrenciler, temel Python bilgilerini kullanarak basit ve fonksiyonel programlar geliştirme becerilerini pekiştireceklerdir. Ayrıca, metin tabanlı oyunların nasıl kodlandığını anlayarak, oyun simülasyonu ve algoritma geliştirme 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. Kelime listesi oluşturma ve rastgele bir kelime seçme.

  2. Oyunun başlatılması ve gerekli değişkenlerin tanımlanması.

  3. Oyuncunun harf tahmin etmesi ve tahminlerin kontrol edilmesi.

  4. Oyunun ilerleyişini ve oyuncunun durumunu ekrana yazdırma.

  5. Oyunun sonucunu belirleme ve ekrana yazdırma.

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



Adım 1: Kelime Listesi Oluşturma ve Rastgele Bir Kelime Seçme

İlk adım olarak, kullanılacak kelimelerin listesi oluşturulacak ve bu listeden rastgele bir kelime seçilecektir.


import random

# Kelime listesi
kelime_listesi = ["python", "hangman", "challenge", "programming", "development"]

# Rastgele bir kelime seçme
gizli_kelime = random.choice(kelime_listesi)

Bu kod parçası, oyunda kullanılacak kelime listesini oluşturur ve bu listeden rastgele bir kelime seçer.



Adım 2: Oyunun Başlatılması ve Gerekli Değişkenlerin Tanımlanması

İkinci adımda, oyun başlatılacak ve gerekli değişkenler tanımlanacaktır.


# Oyunun başlatılması ve gerekli değişkenlerin tanımlanması
tahmin_edilenler = []  # Oyuncunun tahmin ettiği harfler
yanlis_tahmin_sayisi = 0  # Yanlış tahmin sayısı
maksimum_yanlis_tahmin = 6  # İzin verilen maksimum yanlış tahmin sayısı
oyun_bitti = False

print(f"Kelime {len(gizli_kelime)} harften oluşuyor.")

Bu kod parçası, oyun için gerekli değişkenleri tanımlar ve oyuncuya gizli kelimenin kaç harften oluştuğunu bildirir.



Adım 3: Oyuncunun Harf Tahmin Etmesi ve Tahminlerin Kontrol Edilmesi

Üçüncü adımda, oyuncunun harf tahmin etmesi ve bu tahminlerin kontrol edilmesi işlemleri gerçekleştirilecektir.


# Oyuncunun harf tahmin etmesi ve tahminlerin kontrol edilmesi
while not oyun_bitti:
    tahmin = input("Bir harf tahmin edin: ").lower()

    if tahmin in tahmin_edilenler:
        print("Bu harfi zaten tahmin ettiniz. Başka bir harf deneyin.")
        continue

    tahmin_edilenler.append(tahmin)

    if tahmin in gizli_kelime:
        print("Doğru tahmin!")
    else:
        print("Yanlış tahmin!")
        yanlis_tahmin_sayisi += 1

    kelime_durumu = [harf if harf in tahmin_edilenler else "_" for harf in gizli_kelime]
    print("Kelime: ", " ".join(kelime_durumu))
    print(f"Yanlış tahmin sayısı: {yanlis_tahmin_sayisi}")

    if yanlis_tahmin_sayisi >= maksimum_yanlis_tahmin:
        print("Maalesef kaybettiniz! Gizli kelime:", gizli_kelime)
        oyun_bitti = True
    elif "_" not in kelime_durumu:
        print("Tebrikler! Kelimeyi doğru tahmin ettiniz:", gizli_kelime)
        oyun_bitti = True

Bu kod parçası, oyuncunun harf tahmin etmesini ve bu tahminlerin kontrol edilmesini sağlar. Doğru ve yanlış tahminler ekrana yazdırılır ve oyuncunun mevcut durumu güncellenir.



Adım 4: Oyunun İlerleyişini ve Oyuncunun Durumunu Ekrana Yazdırma

Dördüncü adımda, oyunun ilerleyişi ve oyuncunun durumu ekrana yazdırılacaktır.


    kelime_durumu = [harf if harf in tahmin_edilenler else "_" for harf in gizli_kelime]
    print("Kelime: ", " ".join(kelime_durumu))
    print(f"Yanlış tahmin sayısı: {yanlis_tahmin_sayisi}")

    if yanlis_tahmin_sayisi >= maksimum_yanlis_tahmin:
        print("Maalesef kaybettiniz! Gizli kelime:", gizli_kelime)
        oyun_bitti = True
    elif "_" not in kelime_durumu:
        print("Tebrikler! Kelimeyi doğru tahmin ettiniz:", gizli_kelime)
        oyun_bitti = True

Bu kod parçası, oyuncunun mevcut durumunu ve kelimenin tahmin edilen kısımlarını ekrana yazdırır. Oyunun bitip bitmediği kontrol edilir ve oyun sona erdirilir.



Adım 5: Sonuçların Belirlenmesi ve Ekrana Yazdırılması

Beşinci adımda, oyunun sonuçları belirlenir ve ekrana yazdırılır.


    if yanlis_tahmin_sayisi >= maksimum_yanlis_tahmin:
        print("Maalesef kaybettiniz! Gizli kelime:", gizli_kelime)
        oyun_bitti = True
    elif "_" not in kelime_durumu:
        print("Tebrikler! Kelimeyi doğru tahmin ettiniz:", gizli_kelime)
        oyun_bitti = True

Bu kod parçası, oyuncunun kazanıp kazanmadığını veya kaybedip kaybetmediğini kontrol eder ve sonucu ekrana yazdırır.



Adım 6: Fonksiyonlarla Çözüm


Rastgele Kelime Seçme Fonksiyonu

Bu fonksiyon, kelime listesinden rastgele bir kelime seçilmesini sağlar.


def rastgele_kelime_sec(kelime_listesi):
    """Kelime listesinden rastgele bir kelime seçer."""
    return random.choice(kelime_listesi)

Kelime listesinden rastgele bir kelime seçer ve döndürür. Bu fonksiyon, oyunun başında kullanılacak kelimeyi belirlemek için kullanılır.


Kelime Durumunu Güncelleme Fonksiyonu

Bu fonksiyon, tahmin edilen harflere göre kelimenin mevcut durumunu günceller.


def kelime_durumunu_guncelle(gizli_kelime, tahmin_edilenler):
    """Tahmin edilen harflere göre kelimenin mevcut durumunu günceller."""
    return [harf if harf in tahmin_edilenler else "_" for harf in gizli_kelime]

Gizli kelime ve tahmin edilen harflere göre kelimenin mevcut durumunu günceller ve döndürür. Bu fonksiyon, oyuncunun doğru tahminlerini takip etmek için kullanılır.


Oyuncu Tahminini Kontrol Etme Fonksiyonu

Bu fonksiyon, oyuncunun tahmin ettiği harfi kontrol eder ve doğru veya yanlış olduğunu belirler.


def tahmini_kontrol_et(tahmin, gizli_kelime, tahmin_edilenler, yanlis_tahmin_sayisi):
    """Oyuncunun tahmin ettiği harfi kontrol eder ve doğru veya yanlış olduğunu belirler."""
    if tahmin in tahmin_edilenler:
        return "Bu harfi zaten tahmin ettiniz. Başka bir harf deneyin.", yanlis_tahmin_sayisi

    tahmin_edilenler.append(tahmin)

    if tahmin in gizli_kelime:
        return "Doğru tahmin!", yanlis_tahmin_sayisi
    else:
        return "Yanlış tahmin!", yanlis_tahmin_sayisi + 1

Oyuncunun tahmin ettiği harfi kontrol eder ve doğru veya yanlış olduğunu belirler. Ayrıca, tahmin edilen harfleri günceller ve yanlış tahmin sayısını artırır.


Oyunu Başlatma Fonksiyonu

Bu fonksiyon, Hangman oyununu başlatır ve oyunun akışını yönetir.


def oyunu_baslat(kelime_listesi):
    """Hangman oyununu başlatır."""
    gizli_kelime = rastgele_kelime_sec(kelime_listesi)
    tahmin_edilenler = []
    yanlis_tahmin_sayisi = 0
    maksimum_yanlis_tahmin = 6
    oyun_bitti = False

    print(f"Kelime {len(gizli_kelime)} harften oluşuyor.")

    while not oyun_bitti:
        tahmin = input("Bir harf tahmin edin: ").lower()
        mesaj, yanlis_tahmin_sayisi = tahmini_kontrol_et(tahmin, gizli_kelime, tahmin_edilenler, yanlis_tahmin_sayisi)
        print(mesaj)

        kelime_durumu = kelime_durumunu_guncelle(gizli_kelime, tahmin_edilenler)
        print("Kelime: ", " ".join(kelime_durumu))
        print(f"Yanlış tahmin sayısı: {yanlis_tahmin_sayisi}")

        if yanlis_tahmin_sayisi >= maksimum_yanlis_tahmin:
            print("Maalesef kaybettiniz! Gizli kelime:", gizli_kelime)
            oyun_bitti = True
        elif "_" not in kelime_durumu:
            print("Tebrikler! Kelimeyi doğru tahmin ettiniz:", gizli_kelime)
            oyun_bitti = True

# Kelime listesi oluşturma
kelime_listesi = ["python", "hangman", "challenge", "programming", "development"]

# Oyunu başlatma
oyunu_baslat(kelime_listesi)


Bu fonksiyon, Hangman oyununu başlatır ve oyunun akışını yönetir. Oyuncunun tahminlerini alır, tahminlerin doğru veya yanlış olduğunu kontrol eder ve oyunun sonucunu belirler.


Kullanılan Konular

  • Veri Tipleri: Bu projede, listeler (kelime listesi, tahmin edilen harfler) ve stringler (gizli kelime, tahmin) kullanılmıştır.

  • Listeler: Tahmin edilen harfler ve kelime durumu listeler şeklinde tutulmuştur.

  • Koşullu İfadeler: if-else yapıları, oyuncunun tahminlerini ve oyun durumunu kontrol etmek için kullanılmıştır.

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

  • Döngüler: while döngüleri, oyuncunun tahminlerini almak ve oyunun akışını yönetmek için kullanılmıştır.

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




 

Comments


Commenting has been turned off.
bottom of page