我正在尝试设计一个简单的刽子手游戏,目前我遇到了循环这个游戏的问题。我对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) + "!")
目前,游戏并没有循环,只是简单地切入“不幸”,这个词是___'。我该如何解决?有什么问题?
答案 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) + "!")