Реализация игры «Палач» на Python
Создайте и запустите игру Hangman на Python. Изучите проверку наборов символов, счетчики оставшихся попыток и замену строк скрытых слов.
Обзор
Hangman — это игра на угадывание слов, которая обучает разработчиков работе с пользовательскими строками, списками изменяемых символов и циклами проверки.
Движок выбирает случайное слово из заранее определенного списка. Он предоставляет игроку пустые места, соответствующие длине слова. С каждой догадкой буква раскрывается, либо количество оставшихся ошибок уменьшается на единицу.
В Python мы управляем этим игровым процессом, используя списки символов вместо неизменяемых строк, что позволяет быстро обнаруживать данные на месте и одновременно отслеживать ранее угаданные символы, чтобы избежать штрафов.
Код и вывод выполнения
Стандартный игровой скрипт Hangman с командной строкой и имитацией входных данных сеанса.
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'!Пошаговая реализация
- Изучение алгоритмов синтаксического анализа условных строк
- Отслеживание состояния с использованием наборов для уникального поиска истории
- Создание интерактивного терминала обучающих игр
Часто задаваемые вопросы
Зачем использовать набор для отгаданных букв?
Проверка членства в наборах Python выполняется в среднем за O(1), тогда как для списков требуется время O(n). Это обеспечивает более быстрый поиск при проверке предыдущих предположений.
Как загрузить большие списки слов?
Вы можете загрузить тысячи слов, прочитав их из текстового файла, используя функцию Python open(), или получить их динамически, используя структуру запросов веб-API.
Связанные темы
Запустите терминальную игру «Крестики-нолики» на Python. Изучите управление состоянием платы, переключение поворотов и выиграйте проверки состояния.
Игра Python «Камень, ножницы, бумага»Создайте игру «Камень-ножницы-бумага» на Python. Освойте случайный выбор, проверку пользовательских данных и сопоставление реляционных правил.