Python 交换玩家
我制作了一个程序来计算玩家当前的健康状况并在它们之间切换。我需要在球员之间切换的帮助。这就是我到目前为止所做的:Python 交换玩家,python,python-3.x,Python,Python 3.x,我制作了一个程序来计算玩家当前的健康状况并在它们之间切换。我需要在球员之间切换的帮助。这就是我到目前为止所做的: class Player(): def turn(life): players = ['Player 1', 'Player 2'] life = 100 for player in players: while life >= 0: print (life)
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()
我以前也有过类似的经历。我建议你做一些与你可能想要的答案稍有不同的事情。我建议您查看游戏设计模式的参考资料,而不是为这个单独的问题寻找解决方案 虽然我认为最初的学习曲线可能有点高,但我认为如果你学会使用游戏机制的适当设计模式,你会发现构建你想要的东西要容易得多 有几种不同的资源可供选择。我使用(我与这个人没有联系),但我也有C++背景。我会环顾四周,寻找对你来说最直观的方法,并尝试一下 祝你一切顺利 以下是一个开始:
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()
职业玩家:
def u u init u u;(self,name,health=100):
self.name=名称
自我健康
def命中(自身,n):
断言n>=0
自我健康-=n
def heal(自我,n):
断言n>=0
自我健康+=n
@财产
def已死亡(自身):
返回自我健康。你似乎误解了课程。请重新阅读或继续本教程。为什么一个播放器
包含两个播放器
?为什么两个玩家
只有一个生命
?你似乎定义了一个更适合游戏的职业,而不是一个玩家。游戏类当然可以维护玩家列表,还可以有一个变量currentPlayer
,用于跟踪当前玩家是谁,但这些变量应该是类成员变量(例如在\uuuuuu init\uuuuuu
中初始化),而不是在回合()中声明
。这个问题需要我们提供的更多帮助。我们喜欢帮助别人,但有时你需要先帮助自己,比如读一本关于语言的书,在线文档,或者询问你认识的人。一旦你更好地理解了这个主题,我们邀请你编辑这个问题,修正明显的错误,然后重新打开它。