2014-11-08 2 views
0

Я создаю текстовую игру с несколькими характеристиками, которые вам нужно поддерживать, например, выносливость, здоровье и т. Д., И у меня возникают проблемы с тем, что произойдет, если они пойдут ниже 0. Я знаю, что в то время как петля будет работать, я мог бы сделать:Как добавить несколько условий в цикл 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 или меньше? –

ответ

0

Вы всегда можете использовать and и or. Например:

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

Вы можете объединить их в одно испытание с использованием min:

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

+1 для мышления –

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

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!") 
Смежные вопросы