Path: mini_projects/hangman.py
from random import randint
word_list = ['ЖЕНЩИНА', 'МУЖЧИНА', 'ЧЕЛОВЕК', 'РЫБА', 'ПТИЦА', 'СОБАКА', 'ВОШЬ', 'ДЕРЕВО',
'СЕМЯ', 'ЛИСТ', 'КОРЕНЬ', 'КОРА', 'КОЖА', 'МЯСО', 'КРОВЬ', 'КОСТЬ', 'ЖИР', 'ЯЙЦО',
'РОГ', 'ХВОСТ', 'ПЕРО', 'ВОЛОСЫ', 'ГОЛОВА', 'УХО', 'ГЛАЗ', 'НОС', 'РОТ', 'ЗУБ',
'ЯЗЫК', 'НОГОТЬ', 'НОГА', 'КОЛЕНО', 'РУКА', 'ЖИВОТ', 'ГОРЛО', 'ГРУДЬ', 'СЕРДЦЕ',
'ПЕЧЕНЬ', 'СОЛНЦЕ', 'ЛУНА', 'ЗВЕЗДА', 'ВОДА', 'ДОЖДЬ', 'КАМЕНЬ', 'ПЕСОК', 'ЗЕМЛЯ',
'ОБЛАКО', 'ДЫМ', 'ОГОНЬ', 'ПЕПЕЛ', 'ДОРОГА', 'ТРОПА', 'ГОРА', 'НОЧЬ', 'ИМЯ']
alf = set('АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ')
stages = [ # финальное состояние: голова, торс, обе руки, обе ноги
'''
--------
| |
| O
| \\|/
| |
| / \\
---
''',
# голова, торс, обе руки, одна нога
'''
--------
| |
| O
| \\|/
| |
| /
---
''',
# голова, торс, обе руки
'''
--------
| |
| O
| \\|/
| |
|
---
''',
# голова, торс и одна рука
'''
--------
| |
| O
| \\|
| |
|
---
''',
# голова и торс
'''
--------
| |
| O
| |
| |
|
---
''',
# голова
'''
--------
| |
| O
|
|
|
---
''',
# начальное состояние
'''
--------
| |
|
|
|
|
---
'''
]
victory = '''
--------
| |
O |
\\|/ |
| |
/ \\ |
---
'''
def input_letter(used_letters):
while True:
letter = input('Назовите букву: ').strip().upper()
if len(letter) != 1:
print('Надо ввести одну букву!')
elif letter not in alf:
print('Надо ввести букву из алфавита!')
elif letter in used_letters:
print('Такая буква уже была!')
else:
return letter
word = word_list[randint(0, len(word_list) - 1)]
guessed_word = '*' * len(word)
print('И так, начинаем игру "Поле чудес"!')
tries = 6
used_letters = set()
while guessed_word != word:
print(stages[tries])
print('У вас осталось попыток:', tries)
if tries < 1:
print('Увы, вы проиграли :(')
print('Это было слово:', word)
break
print('Использованные буквы:', ''.join(sorted(used_letters)))
print('Угадайте слово:', guessed_word)
letter = input_letter(used_letters)
used_letters.add(letter)
for i in range(len(word)):
if letter == word[i]:
guessed_word = guessed_word[:i] + letter + guessed_word[i + 1:]
if letter not in guessed_word:
tries -= 1
print('Нет такой буквы в этом слове :(')
else:
print('Есть такая буква в этом слове!')
else:
print('Вы угадали:', guessed_word)
print(victory)
Powered by md2html_py 1.0.7