【发布时间】:2020-11-17 18:14:03
【问题描述】:
所以我正在编写一个非常基本的纸牌游戏,其中有 2 个玩家,每个玩家都有一副纸牌。每张卡片(对象)都有健康点和伤害点。在“战斗”期间,每个玩家都必须对敌人造成伤害(遍历他卡组中的每张卡),然后轮到其他玩家。这是战斗的代码:
from project.player.player import Player
class BattleField:
@staticmethod
def fight(attacker: Player, enemy: Player):
for x in (attacker, enemy):
if x.is_dead:
raise ValueError("Player is dead!")
if x.__class__.__name__ == 'Beginner':
x.health += 40
for card in x.card_repository.cards:
card.damage_points += 30
health_bonus = sum(card.health_points for card in x.card_repository.cards)
x.health += health_bonus
for card in attacker.card_repository.cards:
enemy.health -= card.damage_points
if enemy.is_dead:
raise ValueError("Player is dead!")
for card in enemy.card_repository.cards:
attacker.health -= card.damage_points
if attacker.is_dead:
raise ValueError("Player is dead!")
我的问题是 - 这两个 for 循环(用于造成伤害)是否可以合并到一个循环中以及如何合并。提前致谢。
【问题讨论】:
标签: python-3.x loops oop