Implementacja gry Wisielec w Pythonie
Zbuduj i uruchom grę Hangman w Pythonie. Przeglądaj sprawdzanie zestawów znaków, liczniki pozostałych prób i zastępowanie ukrytych ciągów słów.
Przegląd
Hangman to gra polegająca na zgadywaniu słów, która szkoli programistów w zakresie obsługi ciągów znaków użytkownika, list modyfikowalnych znaków i pętli sprawdzania poprawności.
Silnik wybiera losowe słowo z predefiniowanej listy. Wyświetla graczowi puste spacje odpowiadające długości słowa. Z każdym odgadnięciem odkrywana jest litera lub liczba pozostałych błędów spada o jeden.
W Pythonie zarządzamy przebiegiem gry, używając list postaci zamiast niezmiennych ciągów znaków, co pozwala na szybkie odkrywanie na miejscu, jednocześnie śledząc wcześniej odgadnięte postacie, aby uniknąć kar.
Dane wyjściowe kodu i wykonania
Standardowy skrypt gry Wisielec wiersza poleceń z wprowadzanymi danymi sesji próbnej.
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()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'!Wdrażanie krok po kroku
- Nauka algorytmów warunkowego analizowania ciągów znaków
- Śledzenie stanu przy użyciu zestawów do unikalnego wyszukiwania historii
- Budowanie interaktywnych, terminalowych gier edukacyjnych
Często zadawane pytania
Po co używać zestawu do odgadywania liter?
Sprawdzanie członkostwa w zbiorach Pythona przebiega w średnim czasie O(1), podczas gdy listy wymagają czasu O(n). Zapewnia to szybsze wyszukiwanie podczas weryfikacji poprzednich domysłów.
Jak mogę załadować większe listy słów?
Możesz załadować tysiące słów, czytając z pliku tekstowego za pomocą funkcji `open()` Pythona lub pobierać je dynamicznie, korzystając ze struktury żądań internetowego interfejsu API.
Powiązane tematy
Uruchom terminalową grę w kółko i krzyżyk w języku Python. Dowiedz się, jak zarządzać stanem płytki, przełączać zakręty i wygrywać kontrole warunków.
Gra Python Rock Paper ScissorsUtwórz grę Kamień, Papier, Nożyce w Pythonie. Opanuj losowe wybory, sprawdzanie poprawności danych wejściowych użytkownika i mapowanie reguł relacyjnych.