不知道你的游戏的逻辑是,但你应该创建属性,避免使用全球,使用实例的属性和方法。您可以使用sys.exit退出循环,如果你的敌人的生命得到0
import time
import sys
from random import random
class Enemy():
def __init__(self):
self.dead = 0
self.life = 100
def attack(self):
if random() > .20:
self.life -= 10
print("Attack successful, enemy life decreased by 10 to {}".format(self.life))
elif self.life <= 90:
self.life += 10
print("Attack unsuccessful, enemy increases life to {}".format(self.life))
def health_check(self):
if self.life <= 0:
print("You defeated the enemy!")
sys.exit()
enemy1 = Enemy()
while True:
time.sleep(1)
enemy1.attack()
enemy1.health_check()
time.sleep(1)
输出示例:
Attack successful, enemy life decreased by 10 to 90
Attack unsuccessful, enemy increases life to 100
Attack successful, enemy life decreased by 10 to 90
Attack successful, enemy life decreased by 10 to 80
Attack successful, enemy life decreased by 10 to 70
Attack successful, enemy life decreased by 10 to 60
Attack successful, enemy life decreased by 10 to 50
Attack unsuccessful, enemy increases life to 60
Attack unsuccessful, enemy increases life to 70
Attack successful, enemy life decreased by 10 to 60
Attack successful, enemy life decreased by 10 to 50
Attack successful, enemy life decreased by 10 to 40
Attack successful, enemy life decreased by 10 to 30
Attack successful, enemy life decreased by 10 to 20
Attack unsuccessful, enemy increases life to 30
Attack successful, enemy life decreased by 10 to 20
Attack successful, enemy life decreased by 10 to 10
Attack successful, enemy life decreased by 10 to 0
You defeated the enemy!
你也可以将它通过增加设置的攻击成功的几率困难属性或减少什么你比较随机的()到:
class Enemy():
def __init__(self,diff):
self.dead = 0
self.life = 100
self.diff = diff
def attack(self):
if random() > self.diff:
self.life -= 10
print("Attack successful, enemy life decreased by 10 to {}".format(self.life))
elif self.life <= 90:
self.life += 10
print("Attack unsuccessful, enemy increases life to {}".format(self.life))
def health_check(self):
if self.life <= 0:
print("You defeated the enemy!")
sys.exit()
enemy1 = Enemy(.20)
如果你想在同时打破,在方法返回并用,如果检查:
class Enemy():
def __init__(self,diff):
self.dead = 0
self.life = 100
self.diff = diff
def attack(self):
if random() > self.diff:
self.life -= 10
print("Attack successful, enemy life decreased by 10 to {}".format(self.life))
elif self.life <= 90:
self.life += 10
print("Attack unsuccessful, enemy increases life to {}".format(self.life))
def health_check(self):
if self.life <= 0:
print("You defeated the enemy!")
return True
return False
enemy1 = Enemy(.3)
while True:
time.sleep(1)
enemy1.attack()
if enemy1.health_check():
break
time.sleep(1)
您应该学习如何在尝试类之前使用函数和循环http://anandology.com/python-practice-book/ –