Всем привет! Помогите, пожалуйста, найти ошибку в коде.
Занимаюсь по учебнику "Учим Python делая крутые игры!"
Сделал всё как по учебнику, но игра не запускается и выдаёт ошибку Invalid Syntax.
Скрин шот во вложении.
Благодарю за помощь.
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 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! Secret word - " + 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