@n0r3ty
Начал учить програмирование

Ошибка в игре виселица invalid syntax?

Всем привет! Помогите, пожалуйста, найти ошибку в коде.
Занимаюсь по учебнику "Учим 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



5e7743976183f801510868.jpeg
  • Вопрос задан
  • 37 просмотров
Решения вопроса 1
@bbkmzzzz
Там даже подсвечено, где ошибка. Закрывающая скобка пропущена.
for i in range(len(secretWord): #заменяет пропуски отгаданными буквами


Оборачивайте код в тег code
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы