'''我需要爲python中的遊戲編寫2階段進程。第一階段導致第二階段,然後遊戲重置並再次詢問玩家是否想要再次移動到第一階段。我在這個例子中遇到了一個無限循環,並且在我的實際程序中它最終會停止,但我無法弄清楚爲什麼。有沒有什麼辦法可以將它設置到elif子句不評估第一次迭代的地方,但是隻有在第二次迭代時評估纔會重置程序?或者更好的辦法,也許在pygame的?「」」Python:如何在while循環中設置2階段進程
import sys
phase_one = 1
game_state = input("Move Forward? -- Yes or No: ")
while game_state == "Yes":
if phase_one == 1:
phase_one = 0
elif phase_one == 0:
print("Yikes!")
phase_one = 1
else:
if game_state == "No":
game_state = 0
print("Exit!")
sys.exit(0)
應該編輯這篇文章,並使用代碼{}項目格式化你的代碼,使它可讀。 game_state應該是一個整數還是一個字符串?你似乎將它用作兩者。無盡的循環是有道理的。一旦進入循環,沒有任何東西會打破循環。那個'else:'線應該和'if'和'elif'處於同一縮進水平嗎?看起來它與'while'相同,這很奇怪。 –
我假設你的問題是你沒有'phase_one'在每次迭代0和1之間切換。如果是這樣,那麼只需添加另一個標誌以便切換。 –
查看[iminurnamez簡單狀態機示例](https://www.reddit.com/r/pygame/comments/3kghhj/simple_state_machine_example/)。 – skrx