else:
break
import random
HANGMAN_PICS = ('''
+---+
|
|
|
===''','''
+---+
|
|
|
===''','''
+---+
0 |
| |
|
===''','''
+---+
0 |
/| |
|
===''','''
+---+
0 |
/|\ |
|
===''','''
+===+
0 |
/|\ |
/ |
===''','''
+===+
0 |
/|\ |
/ \ |
===''')
words = '''аист акула бабуин баран барсук бобр бык верблюд воробей ворон выдра
голубь гусь жаба зебра змея индюк кит кобра коза козёл койот корова кошка кролик
крыса курица лама ласка лебедь лев лиса лосось лось лягушка медведь моллюск моль
мул муравей мышь норка носорог обезьяна овца окунь олень орёл осёл панда паук
питон попугай пума сёмга скунс собака сова тигр тритон тюлень утка форель хорёк
черепаха ястреб ящерица'''.split()
def getRandomWord(wordList):
#Эта функция возвращает случайную строку из переданного списка
wordIndex = random.randint(0, len(wordList) - 1)
return wordList[wordIndex]
def displayBoard(missedLetters, correctLetters, secretWord):
print(HANGMAN_PICS[len (missedLetters)])
print()
print('Ошибочная буквы:', end='')
for letter in missedLetters:
print(letter, end='')
print()
blanks = '_' * len(secretWord)
for i in range(len(secretWord)): #Заменяет пропуски отгаданными буквами
if secretWord[i] in correctLetters:
blanks = blanks[:i] + secretWord[i] + blanks[i+1:]
for i in range(len(secretWord)):
if secretWord[i] in correctLetters:
blanks = blanks[:i] + secretWord[i] + blanks[i+1:]
for letter in blanks:
print(letter, end='')
print()
def getGuess(alreadyGuessed):
#Возвращает букву, введённую игроком. Проверка того, что игрок ввёл одну букву
while True:
print('Введите букву.')
guess = input()
guess = guess.lower()
if len(guess) != 1:
print('Введите одну букву.')
elif guess in alreadyGuessed:
print('Вы уже называли эту букву. Назовите другую.')
elif guess not in 'фбвгдеёжзийклмнопрстуфхцчшщъыьэюя':
print('Введите БУКВУ.')
else:
return guess
def playAgain():
#Эта функция возвращает значение True, если игрок хочет сыграть заново; в противном случае возвращает false
print('Хотите сыграть ещё раз?')
return input().lower().startswith('д')
print('В И С Е Л И Ц А')
missedLetters = ''
correctLetters = ''
secretWord = getRandomWord(words)
gameIsDone = False
while True:
displayBoard(missedLetters, correctLetters, secretWord)
#позволяет игроку ввести букву
guess = getGuess(missedLetters + correctLetters)
if guess in secretWord:
correctLetters = correctLetters + guess
#проверяет, выиграл ли игрок
foundAllLetters = True
for i in range(len(secretWord)):
if secretWord[i] not in correctLetters:
foundAllLetters = False
break
if foundAllLetters:
print('YES! Секретное слово - "' + secretWord + '"! Вы угадали!')
gameIsDone= True
else:
missedLetters = missedLetters + guess
#Проверяет, превысил ли игрок лимит попыток и проиграл
if len(missedLetters) == len(HANGMAN_PICS) - 1:
displayBoard(missedLetters, correctLetters, secretWord)
print('Вы исчерпали все попытки!\n Не угадано букв: ' + str(len(missedLetters)) + ' и угадано букв: '
+str(len(correctLetters)) + '.Было загадано слово "' + secretWord + '".')
gameIsDone = True
#Спросить хочет ли игрок сыграть заново
if gameIsDone:
if playAgain():
missedLetters = ''
correctLetters = ''
gameIsDone = False
secretWord = getRandomWord(words)
else:
break
import random
HANGMAN_PICS = ('''
+---+
|
|
|
===''','''
+---+
|
|
|
===''','''
+---+
0 |
| |
|
===''','''
+---+
0 |
/| |
|
===''','''
+---+
0 |
/|\ |
|
===''','''
+===+
0 |
/|\ |
/ |
===''','''
+===+
0 |
/|\ |
/ \ |
===''')
words = '''аист акула бабуин баран барсук бобр бык верблюд воробей ворон выдра
голубь гусь жаба зебра змея индюк кит кобра коза козёл койот корова кошка кролик
крыса курица лама ласка лебедь лев лиса лосось лось лягушка медведь моллюск моль
мул муравей мышь норка носорог обезьяна овца окунь олень орёл осёл панда паук
питон попугай пума сёмга скунс собака сова тигр тритон тюлень утка форель хорёк
черепаха ястреб ящерица'''.split()
def getRandomWord(wordList):
#Эта функция возвращает случайную строку из переданного списка
wordIndex = random.randint(0, len(wordList) - 1)
return wordList(wordIndex)
def displayBoard(missedLetters, correctLetters, secretWord):
print(HANGMAN_PICS[len (missedLetters)])
print()
print('Ошибочная буквы:', end='')
for letter in missedLetters:
print(letter, end='')
print()
blanks = '_' * len(secretWord)
for i in range(len(secretWord)): #Заменяет пропуски отгаданными буквами
if secretWord(i) in correctLetters:
blanks = blanks[:i] + secretWord[i] + blanks[i+1:]
for i in range(len(secretWord)):
if secretWord[i] in correctLetters:
blanks = blanks[:i] + secretWord[i] + blanks[i+1:]
for letter in blanks:
print(letter, end='')
print()
def getGuess(alreadyGuessed):
#Возвращает букву, введённую игроком. Проверка того, что игрок ввёл одну букву
while True:
print('Введите букву.')
guess = input()
guess = guess.lower()
if len(guess) != 1:
print('Введите одну букву.')
elif guess in alreadyGuessed:
print('Вы уже называли эту букву. Назовите другую.')
elif guess not in 'фбвгдеёжзийклмнопрстуфхцчшщъыьэюя':
print('Введите БУКВУ.')
else:
return guess
def playAgain():
#Эта функция возвращает значение True, если игрок хочет сыграть заново; в противном случае возвращает false
print('Хотите сыграть ещё раз?')
return input().lower().startswith('д')
print('В И С Е Л И Ц А')
missedLetters = ''
correctLetters = ''
secretWord = getRandomWord(words)
game.IsDone = False
while True:
displayBoard(missedLetters, correctLetters, secretWord)
#позволяет игроку ввести букву
guess = getGuess(missedLetters + correctLetters)
if guess in secretWord:
correctLetters = correctLetters + guess
#проверяет, выиграл ли игрок
foundAllLetters = True
for i in range(len(secretWord)):
if secretWord[i] not in correctLetters:
foundAllLetters = False
break
if foundAllLetters:
print('YES! Секретное слово - "' + secretWord + '"! Вы угадали!')
gameIsDone= True
else:
missedLetters = missedLetters + guess
#Проверяет, превысил ли игрок лимит попыток и проиграл
if len(missedLetters) == len(HANGMAN_PICS) - 1:
displayBoard(missedLetters, correctLetters, secretWord)
print('Вы исчерпали все попытки!\n Не угадано букв: ' + str(len(missedLetters)) + ' и угадано букв: '
+str(len(correctLetters)) + '.Было загадано слово "' + secretWord + '".')
gameIsDone = True
#Спросить хочет ли игрок сыграть заново
if gameIsDone:
if playAgain():
missedLetters = ''
correctLetters = ''
gameIsDone = False
secretWord = getRandomWord(words)
else:
break
Выше я вам показал исправленный вариант (правда в нем еще могут быть ошибки).Убрал я последние две строчки, запускаю, а мне сразу две ошибки выдаёт:
Traceback (most recent call last):
File "C:\Users\Илья Андреевич\Documents\python projects\HANGMAN.py", line 97, in <module>
secretWord = getRandomWord(words)
File "C:\Users\Илья Андреевич\Documents\python projects\HANGMAN.py", line 48, in getRandomWord
return wordList(wordIndex)
TypeError: 'list' object is not callable
Я с такой проблемой не встречался ещё. Насколько я понял не найден объект "list".
Эта ошибка происходит потому, что вместо обращения к элементы списка по индексу wordList[wordIndex] у вас в коде написано wordList(wordIndex), то есть вызов функции wordList.TypeError: 'list' object is not callable