<p>我将创建一个函数,返回一个包含字符的字典。你知道吗</p>
<p>您不需要在<strong>init中声明攻击</p>
<pre><code>class Enemy(Character):
def __init__(self, name, curHp, attack):
super().__init__(name, curHp)
self.__attack = attack
def enemy_dict(self, names, hps):
""" Takes in a list of names and a list of HP and returns a dictionary of pairs"""
return dict(zip(names, hps))
</code></pre>
<p>让敌人一次攻击一个玩家。调用字典上的for循环,在本例中,我使用<code>random.choice</code>随机选取一个数量,然后将其作为对播放器的伤害</p>
<pre><code>import random
print(player.getName(), player.getCurHp())
for k, v in enemy.enemy_dict(enemy.getName(), enemy.getCurHp()).items():
att_damage = random.choice(range(0, v, 5))
if att_damage == 0:
print('No Damage Taken')
else:
new_hp = player.getCurHp() - att_damage
player.setCurHp(new_hp)
print(player.getName(), "Took Damage of ", new_hp, "From Enemy", k)\
print(player.getName(), player.getCurHp())
</code></pre>
<p>您还需要在类模块中以相反的方式更改setter。你知道吗</p>
<p>应该是</p>
<pre><code>def setName(self, newName):
self.__newName = newName
def setCurHp(self, newCurHp):
H = ""
self.__curHp = newCurHp
</code></pre>