Implementasi Permainan Python Hangman

Bangun dan jalankan game Hangman dengan Python. Jelajahi pemeriksaan kumpulan karakter, penghitung sisa percobaan, dan penggantian string kata tersembunyi.

Coba di Editor

Ikhtisar

Hangman adalah permainan menebak kata yang melatih pengembang dalam menangani string pengguna, daftar karakter yang dapat diubah, dan loop validasi.

Mesin mengambil kata acak dari daftar yang telah ditentukan sebelumnya. Ini memberi pemain ruang kosong yang cocok dengan panjang kata. Dengan setiap tebakan, hurufnya terungkap, atau jumlah kesalahan yang tersisa berkurang satu.

Dengan Python, kami mengelola alur permainan ini menggunakan daftar karakter, bukan string yang tidak dapat diubah, memungkinkan pengungkapan cepat di tempat sambil melacak karakter yang telah ditebak sebelumnya untuk menghindari penalti.

Kode & Output Eksekusi

Skrip permainan Hangman baris perintah standar dengan input sesi tiruan.

hangman.py
Coba di Editor
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()
Keluaran Terminal
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'!

Implementasi Langkah demi Langkah

  • Mempelajari algoritma penguraian string bersyarat
  • Pelacakan status menggunakan kumpulan untuk pencarian riwayat unik
  • Membangun game edukasi terminal interaktif

Pertanyaan yang Sering Diajukan

Mengapa menggunakan set untuk menebak huruf?

Memeriksa keanggotaan dalam kumpulan Python berjalan dalam waktu rata-rata O(1), sedangkan daftar memerlukan waktu O(n). Hal ini memastikan pencarian lebih cepat saat memverifikasi tebakan sebelumnya.

Bagaimana cara memuat daftar kata yang lebih besar?

Anda dapat memuat ribuan kata dengan membaca dari file teks menggunakan fungsi `open()` Python, atau mengambilnya secara dinamis menggunakan kerangka permintaan API web.

Topik Terkait