我做了一个计算玩家当前健康状况并在它们之间切换的程序。我需要在玩家之间切换帮助。这就是我到目前为止所做的:
class Player():
def turn(life):
players = ['Player 1', 'Player 2']
life = 100
for player in players:
while life >= 0:
print (life)
print ("+, -, or end turn")
choice = input("> ")
if choice == "+":
print ("Damage taken")
healing = int(input("> "))
life += healing
elif choice == "-":
print ("Damage taken")
damage = int(input("> "))
life -= damage
elif choice == "end turn" or "end":
return
else:
print ("You lose!")
play = Player()
play.turn()
答案 0 :(得分:2)
我之前一直处于类似的位置。我建议做一些与你可能想要的答案有所不同的事情。我不建议寻找这个问题的解决方案,而是建议查看游戏设计模式的资源。
虽然我认为最初的学习曲线可能有点高,但我认为如果你学会使用适当的游戏机制设计模式,你会发现构建你想要的东西要容易得多。
您可以选择几种不同的资源。我使用http://gameprogrammingpatterns.com/(我与这个人无关),但我也有c ++背景。我会四处寻找可能最直观的东西并尝试一下。
一切顺利!
答案 1 :(得分:0)
这是一个开始:
class Player:
def __init__(self, name, health=100):
self.name = name
self.health = health
def hit(self, n):
assert n >= 0
self.health -= n
def heal(self, n):
assert n >= 0
self.health += n
@property
def is_dead(self):
return self.health <= 0
class Game:
def __init__(self):
self.players = [Player("Adam"), Player("Bert")]
def turn(self, me, him):
# fill this in!
def play(self):
a, b = self.players
while True:
self.turn(a, b)
if b.is_dead:
print("{} won!".format(a.name))
break
else:
# swap players
a, b = b, a
if __name__ == "__main__":
Game().play()