2017-02-11 59 views
1

好吧,我編碼的口袋妖怪文本冒險類遊戲,我需要while循環的幫助。我已經完成了while循環部分。但不工作的部分是:你可以在選擇兩個raw_inputs run,battle之間進行選擇。當您按下其中任何一個時,它不會顯示消息。它所做的就是重複我編寫它的問題。問題問:「你想跑或戰Yveltal?」。您可以在ipython會話中輸入「運行」或「對戰」。當你鍵入戰鬥時,它應該說「你挑戰Yveltal參加一場戰鬥!」。當你鍵入run時,它應該說「你不能跑你膽小鬼」,但如果你輸入任何東西,它所要做的就是問同樣的問題「你想跑步還是戰鬥Yveltal?」。我想要幫助的是離開while循環,當你輸入run或battle時,它會顯示該命令的消息。這是代碼,我可以使用任何人的幫助,謝謝!Python口袋妖怪遊戲雖然循環

from time import sleep 
def start(): 
    sleep(2) 
    print "Hello there, what is your name?" 
    name = raw_input() 
    print "Oh.. So your name is %s!" % (name) 
    sleep(3) 
    print"\nWatch out %s a wild Yveltal appeared!" % (name) 
    sleep(4) 
    user_input = raw_input("Do you want to Run or Battle the Yveltal?" "\n") 
    while raw_input() != 'Battle' or user_input == 'battle' != 'Run' or user_input == 'run': 
     print("Do you want to Run or Battle the Yveltal? ") 
    if user_input == 'Battle' or user_input == 'battle': 
     print("You challenged Yveltal to a battle!") 
    elif user_input == 'Run' or user_input == 'run': 
     print("You can't run you coward!") 
+0

那麼,這是什麼問題? – Arman

回答

0

while循環爲百病之錯誤或失誤。試試這個:

while user_input.lower() != "battle" or user_input.lower() != "run": 使用.lower()函數可以讓你不必計劃「RuN」或「baTTle」。它將字符串轉換爲小寫,以便您可以檢查單詞。此外,你應該使用的raw_input而不是輸入()()老實說,我會組織你的代碼是這樣的:

user_input = input("Run or battle?\n") #or whatever you want your question 
user_input = user_input.lower() 
while True: 
    if user_input == "battle": 
      print("You challenged Yveltal to a battle!") 
      break 
    elif user_input == "run": 
      print("You can't run you coward!") 
      user_input = input("Run or battle?\n") 
      user_input = user_input.lower() 
      break 
    else: 
      user_input = input("Run or battle?\n") 
      user_input = user_input.lower() 

你可能有這樣的代碼更好的運氣。

+0

我很抱歉請求另一個幫忙,但我希望它再次詢問「跑步或戰鬥」消息,如果你輸入跑步,如果你鍵入「跑步」它會說「你不能跑你膽小鬼」,然後顯示每次進入跑步時都會出現「跑步或戰鬥」字符串,但這隻會在您只輸入「跑步」的情況下發生,但其餘的確很有幫助!此外,我使用raw_input,因爲您不必輸入'run',只需鍵入run即可。如果你沒有回答「跑步」或「戰鬥」這個問題,它也不會重新提出這個問題,它只是說它沒有被定義,而不是詢問等待有效回答的相同問題。 – Adal

+0

input()返回一個字符串。用戶可以定期輸入單詞。另外,你是否嘗試過這段代碼?它適用於我,我理解你想要它。 – SH7890

+0

在下面的回答中,else語句的縮進是錯誤的。這就是爲什麼它不能正確執行。縮進一次,你應該很好。 – SH7890