0
我一直堅持這一段時間了,我無法弄清楚該怎麼做。我知道它可能會涉及創建一個空的列表,然後將這些單詞添加到列表中,但是在檢索這些單詞時我沒有任何線索,因爲我從來沒有這樣做過。代碼本身起作用,它只是添加了我遇到麻煩的新功能。我如何讓我的蟒蛇hang子手遊戲的用戶輸入自己的單詞?
import random
import sys
#importing both random and time modules
print("Hello!")
playAgn = 'yes'
animalNames = ['wildebeest','wolverine','woodlouse','woodpecker','yak','zebra']
#this is the list of words that the user will have to guess if they play the game multiple times
while playAgn == 'yes':
secretWord = random.choice(animalNames)
#this line tells the computer to randomly select one of the words in the list "animalNames"
lives = 6
#Defining how many lives the user has
guessedletters = []
print("Okay!\n Lets play hangman!!")
while lives > 0:
inword = False
#user has not guessed word yet so the boolean value is automatically off (False)
print("you have",lives, "lives")
#tells the user how many lives they have left
guessedletter = input("Guess a letter: ")
if len(guessedletter) > 1:
print("Error! Please only enter 1 letter at a time")
#if the user tries to guess something longer than 1 character the computer displays a message asking to only enter 1 letter at a time
elif guessedletter in guessedletters:
print("Sorry, you have already guessed this letter. Try again")
#if the user tries to guess a letter that has already been guessed the computer displays a message telling the user to choose another letter as they have already chose this one
else:
guessedletters+=str(guessedletter)
#adds the guessed letter to guessedletters variable
print("You have guessed:")
for letter in guessedletters:
print(letter.upper(),"")
#prints the letters already guessed in uppercase
shownword = ""
for letter in secretWord:
if letter in guessedletters:
shownword +=str(letter)
#if the letter is in guessedletters then add the letter to shownword(word displayed to user)
if letter == guessedletter:
inword = True
#inword is true as the guessed letter is in the secret word
else:
shownword+=str("_")
#the computer is now adding the underscores too the word being displayed to the user
print(shownword)
#the computer prints the word with the letters that the user has guessed so far (word including underscores for not yet guessed characters)
if "_" not in shownword:
print("Congratulations, you won! The word was '", shownword,"'")
#if there are no underscores(meaning the word is completed) tell the user they have won the game
break
elif inword == False:
#the guessed word is not in the secret word so the boolean value is now off (False)
print("No luck," , guessedletter , "is not in my word")
lives -= 1
#deducts a life for the wrong letter being guessed and also displays a message telling the user that the letter just guessed isn't in the secret word
if lives == 0:
print("You have run out of lives. The word was '",secretWord,"'")
#if the user runs out of lives and still hasn't guessed the word, tell them they failed to beat the game and also tell them the word
while True:
playAgn = input("Would you like to play again? yes/no: ")
if playAgn == 'no':
print("okay\n Goodbye!")
break
elif playAgn == 'yes':
break
感謝很多的人誰可以幫助想出解決辦法:)
+1用於處理允許用戶跳過的情況...我太懶惰 –
:)這個答案很好。這就是說,當你輸入可能的單詞時,玩hang子手是多麼的困難! –
@FredMitchell熱門多人遊戲? –