【发布时间】:2013-12-21 06:26:16
【问题描述】:
这是我遇到问题的代码(简化以使其更清晰)。这是一个基于文本的游戏,只是为了帮助学习。
class Character(object):
def __init__(self):
self.level = 5
self.moveset = [None,None,None,None]
def movesetleveling(self):
if self.level > 4:
self.moveset[0] = Punch(self.level)
def punch(level):
damagedealt = random.randint(0,5)**level
return damagedealt
我想知道如何在这段代码中生成self.moveset[0] = Punch() 而不是等于Punch() 的输出。这样每次我在 while 循环中运行它时,它都会重新评估 Punch() 的输出,而不是评估一次 Punch() 并将其分配给 self.moveset[0] 的第 0 个索引。
【问题讨论】:
-
“在while循环中运行”是什么意思?你打算如何使用
moveset? -
您想在
self.moveset中设置四个随机打孔级别,还是希望self.moveset中的第一项在循环的每次迭代中成为随机打孔值? -
@BrenBarn
moveset将用于显示选择的玩家动作。他们将从列表中选择一个移动,然后对其进行评估以产生一个整数值,该值将是一个damagestat。这个伤害统计会影响敌人的健康。我创建了一个 while 循环,它一遍又一遍地执行此操作,但每次它对self.moveset[0]使用相同的值,而不是获取新值。 -
将你的while循环添加到问题中
-
@BurhanKhalid 我希望第一个项目是循环的每次迭代中的随机打孔值。
标签: python function class python-3.x