Python Adam Asmaca Oyunu Uygulaması

Python'da bir Hangman oyunu oluşturun ve çalıştırın. Karakter kümelerinin kontrolünü, kalan deneme sayılarını ve gizli sözcük dizisi değişimini keşfedin.

Editör'de deneyin

Genel Bakış

Adam Asmaca, geliştiricilere kullanıcı dizelerini, değiştirilebilir karakter listelerini ve doğrulama döngülerini kullanma konusunda eğitim veren bir kelime tahmin oyunudur.

Motor önceden tanımlanmış bir listeden rastgele bir kelime seçer. Oyuncuya kelimenin uzunluğuna uygun boşluklar sunar. Her tahminde harf ortaya çıkar veya kalan hataların sayısı bir azalır.

Python'da, bu oyun akışını, değişmez dizeler yerine karakter listeleri kullanarak yönetiyoruz; bu, cezalardan kaçınmak için önceden tahmin edilen karakterleri takip ederken hızlı bir şekilde yerinde gösterime olanak tanıyor.

Kod ve Yürütme Çıkışı

Sahte oturum girişi içeren standart bir komut satırı Adam Asmaca oyunu komut dosyası.

import random

def play_hangman():
    word_bank = ["python", "compiler", "terminal", "debugger", "variable"]
    word = random.choice(word_bank)
    guessed_word = ["_"] * len(word)
    guessed_letters = set()
    attempts_remaining = 6
    
    print("Welcome to Hangman!")
    print(f"Word length: {' '.join(guessed_word)}")
    
    # Mocking guess inputs for deterministic run
    mock_guesses = ["e", "o", "a", "t", "r", "n", "i", "m", "p", "c", "l"]
    
    for guess in mock_guesses:
        if attempts_remaining <= 0 or "_" not in guessed_word:
            break
            
        print(f"\nGuessing letter: '{guess}'")
        if guess in guessed_letters:
            print("You already guessed that!")
            continue
            
        guessed_letters.add(guess)
        
        if guess in word:
            for idx, char in enumerate(word):
                if char == guess:
                    guessed_word[idx] = guess
            print(f"Correct! Word state: {' '.join(guessed_word)}")
        else:
            attempts_remaining -= 1
            print(f"Incorrect! Attempts remaining: {attempts_remaining}")
            
    if "_" not in guessed_word:
        print(f"\nCongratulations! You guessed the word '{word}'!")
    else:
        print(f"\nGame Over! The word was '{word}'.")

# Seed random to ensure output matches the word 'compiler'
random.seed(35)
play_hangman()
Terminal Çıkışı
Welcome to Hangman!
Word length: _ _ _ _ _ _ _ _

Guessing letter: 'e'
Correct! Word state: _ _ _ _ _ _ e _

Guessing letter: 'o'
Correct! Word state: _ o _ _ _ _ e _

Guessing letter: 'a'
Incorrect! Attempts remaining: 5

Guessing letter: 't'
Incorrect! Attempts remaining: 4

Guessing letter: 'r'
Correct! Word state: _ o _ _ _ l e r
... (guesses continue)
Congratulations! You guessed the word 'compiler'!

Adım Adım Uygulama

  • Koşullu dize ayrıştırma algoritmalarını öğrenme
  • Benzersiz geçmiş aramaları için kümeleri kullanan durum izleme
  • Etkileşimli terminal eğitici oyunlar oluşturma

Sıkça Sorulan Sorular

Tahmin edilen harfler için neden bir set kullanmalısınız?

Python kümelerinde üyeliğin kontrol edilmesi O(1) ortalama sürede gerçekleşirken, listeler O(n) süre gerektirir. Bu, önceki tahminleri doğrularken daha hızlı arama yapılmasını sağlar.

Daha büyük kelime listelerini nasıl yükleyebilirim?

Python'un 'open()' işlevini kullanarak bir metin dosyasından okuyarak binlerce kelimeyi yükleyebilir veya bunları bir web API istekleri çerçevesini kullanarak dinamik olarak getirebilirsiniz.

İlgili Konular