Создание игры на угадывание в Python с использованием циклов while и for - PullRequest
0 голосов
/ 02 июля 2019

Я пытаюсь сделать игру в догадки.Я использовал операторы while, if, elif и else, но я застрял в том, как использовать циклы for и while, а также рандомизировать отдельные подсказки и отдельные ответы из вложенных списков.

black_box = ["guam","lakers","flash","buddha","drake","fortnite","annabelle","xmen","mars","dad"] 
nested_list = [["island","yigo","cocos","kelaguen"],["kobe","la","magic","lebron"],["scarlet","speedster","dc","ezra"], ["asiangod","meditation","monk","enlightenment"],["rapper","onedance","canadian","raptors"],["game","epic","notminecraft","dances"],["doll","conjuring","soultaker","creation"],["wolverine","mystique","magneto","apocalypse"],["red","fourth","planet","ares"], ["man","american","peter","lionking"]] 
i = random.randint(0,9) 
word = black_box[i] 
hint = nested_list[i] 
print("Guess the word with the following hint: ", hint, "you have 4 tries.") 
numofguesses = 0 
guess = input("What is the word? ") 
while numofguesses < 4: 
    numofguesses = numofguesses + 1 
    if guess == word: 
        print("You win!") 
option = input("Do you want to try again or quit? ") 
if option == "try again": 
    print("") 
elif option == "quit": 
    break 
if guess != word: 
    print("Try again!") 
    guess = input("What is the word? ") 
    if guess != word: 
        print("Try again!") 
        guess = input("What is the word? ") 

Я ожидал получить строку кода с надписью «Попробуйте еще раз!»но он пропустил и начал печатать "Что такое слово?"подсказка во вложенном списке, но затем я попытался снова запустить программу, но я получил сообщение об ошибке: «индекс списка находится вне диапазона.

1 Ответ

1 голос
/ 02 июля 2019

Ваше состояние проверяет и зацикливается там, где не правильно.Попробуйте приведенный ниже код, он должен работать нормально.

black_box = ["guam","lakers","flash","buddha","drake","fortnite","annabelle","xmen","mars","dad"]
nested_list = [["island","yigo","cocos","kelaguen"],["kobe","la","magic","lebron"],["scarlet","speedster","dc","ezra"], ["asiangod","meditation","monk","enlightenment"],["rapper","onedance","canadian","raptors"],["game","epic","notminecraft","dances"],["doll","conjuring","soultaker","creation"],["wolverine","mystique","magneto","apocalypse"],["red","fourth","planet","ares"], ["man","american","peter","lionking"]]
while True:
    i = random.randint(0, 9)
    word = black_box[i]
    numofguesses = 0
    while numofguesses < 4:
        hint = nested_list[i][numofguesses]
        print("Guess the word with the following hint: ", hint, ". You have ", 4 - numofguesses, " tries!")
        guess = input("What is the word? ")
        numofguesses = numofguesses + 1
        if guess == word:
            print("You win!")
            break
        if guess != word:
            print("Try again!")
    option = input("Do you want to try again or quit? ")
    if option == "try again":
        print("")
    else:
        break
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...