перерыл инет и всё равно не понял как это исправить [Python]

Нет, загуглить не легче. Я пытался и ничего не понял. Я не прошу сделать за меня, как это любят тут говорить, я лишь хочу понять что не так(и да, я в состоянии перевести ошибку, я просто не в силах её исправить). Надеюсь на вашу доброту и понимание

выдает вот такую ошибку:

Traceback (most recent call last):
  File "C:/hangman2.py", line 114, in <module>
    secretWord, secretSet = getRandomWord(words)
TypeError: cannot unpack non-iterable NoneType object

ссылка на код https://pastebin.com/P8zVNK2a

import random
HANGMAN_PICS = ['''
    +---+
        |
        |
        |
       ===''', '''
    +---+
        |
         |
         |
        === ''', '''
    +---+
    0   |
    |   |
        |
       ===''','''
    +---+
    0   |
   /|   |
        |
       ===''','''
    +---+
    0   |
   /|\  |
        |
       ===''','''
    +---+
    0   |
   /|\  |
   /    |''','''
    +---+
    0   |
   /|\  |
   / \  |
       ===''','''
    +---+
   [0]  |
   /|\  |
   / \  |
       ===''','''
    +---+
   [0]  |
   /|\  |
   / \  |
       ===''']
words = {'Цвета':'красный оранжевый желтый зеленый синий голубой фиолетовый белый черный коричневый'.split(),
         'Фигуры':'квадрат треугольник прямоугольник круг эллипс ромб трапеция параллелограмм пятиугольник шестиугольник восьмиугольник'.split(),
         'Фрукты':'яблоко апельсин лимон лайм груша мандарин виноград грейпфрут персик банан абрикос манго нектарин'.split(),
         'Животные':'аист бабуин баран барсук бык волк зебра кит коза корова кошка кролик крыса лев лиса лось медведь мул мышь норка носорог обезьяна овца олень осел панда пума скунс собака сова тигр тюлень хорек ящерица'.split()}
 
def getRandomWord(wordDict):
    # Эта функция возвращает случайную строку из переданного списка.
    wordKey = random.choice(list(wordDict.keys()))
    wordIndex = random.randint(0, len(wordDict[wordKey]) -1)
 
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, если игрок хочет сыграть заново; в противном случае возвращает Faulse.
    print('Хотите сыграть ещё? (да или нет)')
    return input().lower().startswith('д')
 
 
print('В И С Е Л Н И Ц А')
 
difficulty = ''
while difficulty not in 'ЛСТ':
     print('Выберите уровень сложности: Л - Легкий, С - Средний, Т - тяжелый')
     difficulty = input().upper()
if difficulty == 'С':
    del HANGMAN_PICS [8]
    del HANGMAN_PICS [7]
if difficulty == 'Т':
    del HANGMAN_PICS [6]
    del HANGMAN_PICS [5]
    del HANGMAN_PICS [4]
    del HANGMAN_PICS [3]
 
missedLetters = ''
correctLetters = ''
secretWord, secretSet = getRandomWord(words)
gameIsDone = False
 
while True:
    print('Секретное слово из набора: ' + secretSet)
    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('ДА! Секретное слово - "' + secretWord + '"! Вы угадали!')
            gameIsDone = True
    else:
        missedLetters = missedLetters + guess
 
        # Проверяет, превысил ли игрок лимит попыток и проиграл.
        if len(missedLetters) == len(HANGMAN_PICS) - 1:
            displayBoard(missedLetters, correctLetters, secretWord)
            gameIsDone = True
 
    # Запрашивает, хочет ли игрок сыграть заново (только если игра завершена).
    if gameIsDone:
        if playAgain():
            missedLetters = ''
            correctLetters = ''
            gameIsDone = False
            secretWord, secretSet = getRandomWord(words)
        else:
            break

Ответы (1 шт):

Автор решения: diak2707

Ты мой брат по несчастью, столкнулся ровно с тем же, думал 2 вечера. Книга из которой ты взял эту прогу то ли переведена криво, толи еще что. Короче, не хватает строчки с кодом в функции getRandomWord. Вот как должно быть.

def getRandomWord(wordDict):
    wordKey = random.choice(list(wordDict.keys()))
    wordIndex = random.randint(0, len(wordDict[wordKey]) - 1)
    return [wordDict[wordKey][wordIndex], wordKey]
→ Ссылка