Hangman游戏 - 循环问题

时间:2016-10-29 16:50:09

标签: python python-3.x loops

我正在尝试设计一个简单的刽子手游戏,目前我遇到了循环这个游戏的问题。我对Python非常陌生,并且我知道这可能是一个非常简单的问题,但是会感激任何帮助。

以下是我目前为游戏提供的代码:

import random
random_words = ["stationery", "notepad", "pencil", "paper","eraser","highlighter","stapler","sharpener"]
computer_choice = random.choice(random_words)
print("The number of letters in the word I have chosen is " +           str(len(computer_choice) + ".")

player_guess = None
guessed_letters = []
word_guessed = []

for letter in computer_choice:
    word_guessed.append("-")
    joined_word = None

player_guess = str(input("Please pick a letter you think is in the word I have chosen."))

attempts = (len(computer_choice)-1)

for letter in (0, len(computer_choice)):

if attempts != 0 and "-" in word_guessed:
    joined_word = "".join(word_guessed)
    print(joined_word)

    guessed_letters.append(player_guess)

    for letter in range(len(computer_choice)):
            if player_guess == computer_choice[letter]:
                word_guessed[letter] = user_input

            if player_guess not in computer_choice:
                attempts -= 1
                player_guess = str("Please try again. You have  " + str(attempts) + " attempts remaining.")

if "-" not in word_guessed:
print("Congratulations! {} was the word").format(computer_choice)

else:
print("Unlucky! The word was " + str(computer_choice) + "!")

目前,游戏并没有循环,只是简单地切入“不幸”,这个词是___'。我该如何解决?有什么问题?

1 个答案:

答案 0 :(得分:1)

当你发布代码时,请认识它,以便它更容易理解,并且python可以在解释器中编译为essencial。

你的代码在循环中有一些错误,因为不要使用for循环来循环一个简单的重复,用于循环遍历列表。对于简单的重复使用。同样在两个嵌套for循环中的变量,让事情变得复杂。

也不需要循环遍历另一个for循环中的每个字母,in运算符已经检查字符是否存在。

我创建了另一种方法来查找和替换单词中的字符,我想更简单一点

import random
random_words = ["stationery", "notepad", "pencil", "paper","eraser","highlighter","stapler","sharpener"]
computer_choice = random.choice(random_words)
print("The number of letters in the word I have chosen is " + str(len(computer_choice)))
win = computer_choice #computer_choice will be destroyed later on
print(computer_choice)
guessed_letters = []
word_guessed = []

for letter in computer_choice:
    word_guessed.append("-")
joined_word = None

player_guess = input("Please pick a letter you think is in the word I have chosen.")

attempts = (len(computer_choice)+1)

x = 0
while x < len(computer_choice):
    x+=1

    if attempts != 0 and "-" in word_guessed:

        if player_guess in computer_choice:
            y=0
            while y < computer_choice.count(player_guess): #will count how many times guessed word is in string
                y+=1
                pos = computer_choice.find(player_guess) #return index of where the letter is
                word_guessed[pos] = player_guess #replaces word_guessed with letter in pos
                computer_choice = computer_choice.replace(player_guess,'#',1) #deletes so it won't find it again
            player_guess = "/"
        if player_guess not in computer_choice:
            attempts -= 1
            print("Please try again. You have  " + str(attempts) + " attempts remaining.")
        player_guess = input("Please pick a letter you think is in the word I have chosen.")
        joined_word = "".join(word_guessed)
        print(joined_word)
    else:
        break

if "-" not in word_guessed:
    print("Congratulations! %s was the word"%win)

else:
    print("Unlucky! The word was " + str(win) + "!")