2014-11-08 75 views
0

我正在創建一個基於文本的遊戲,需要保持多個屬性,例如耐力,健康等,如果他們走到下面,我會遇到麻煩0。我知道一個while循環會工作,我可以這樣做:如何在while循環中添加多個條件

life = 1 
while(life > 0): 
    print("You are alive!") 
    print("Oh no! You got shot! -1 Life") 
    life-1 
print("You are dead! Game Over!") 

但我不知道該怎麼做,與多個條件,如體力,飢餓,強度等

+0

如果你有生命,力量和耐力,但是飢餓達到0或更低,會發生什麼? – 2014-11-08 20:53:00

回答

0

您可以隨時使用andor。例如:

while (life > 0) and (health > 0) and (stamina > 0): 
1

可以使用min將它們組合成一個單一的測試:

while min(life, health, stamina) > 0: 
+0

開箱即用的思考 – 2014-11-08 19:57:34

1

由於0評估爲False在Python中,你可以使用all

while all((life, stamina, hunger, strength)): 

這將測試所有名稱是否不等於零。

然而,如果你需要測試,如果所有的名字都大於零(意思是,他們有可能成爲負),你可以添加一個generator expression

while all(x > 0 for x in (life, stamina, hunger, strength)): 
+0

如果它們可能是負數,這將不起作用。 – Barmar 2014-11-08 19:37:45

0

你可以把if語句轉換成while循環在每次迭代開始時檢查這些統計信息。這樣你可以分別處理每個事件。

life = 1 
while(life > 0): 
    if stamina < 1: 
     print "out of stamina" 
     break 
    if hunger < 1: 
     print "You died of hunger" 
     break 
    print("You are alive!") 
    print("Oh no! You got shot! -1 Life") 
    life-1 
print("You are dead! Game Over!")