目标:我正在努力做到这一点自毁它生成一个介于1和参数“damage”之间的随机数。然而,这个随机数只是第一次被选取,然后在整个代码中使用。我当前的代码如下所示:
import random
class PC(object):
def __init__(self, health, damage):
self.health = health
self.damage = random.randint(1,damage)
Player_character = PC(10,5)
Spider = PC(2,3)
print(Player_character.health)
def fightspider(spiderturn):
rounds = 0
while spiderturn == 1 and rounds < 2:
Spider.damage
Player_character.health = Player_character.health - Spider.damage
rounds += 1
print(Spider.damage)
print(Player_character.health)
def fightplayer(playerturn):
if playerturn == 1:
Spider.damage
fightspider(1)
当我说卡盘损坏在while循环中,我希望它选择一个新的随机数,目前它只使用第一个随机数,没有选择任何新的随机数。 我不知道为什么会发生这种情况或如何解决,我可以得到任何线索去与这个? 这是我第一次使用类,所以我对它们到底是如何工作的只有一半的把握! 谢谢你的帮助。你知道吗
您已将此问题标记为“python-3.x”,因此我假定您使用的是3.x
您以两种不同的方式使用
Spider.damage
:damage
属性中的当前值的表达式。你知道吗random.randint()
,并为damage
属性重新分配一个新的随机数。你知道吗第一次使用是可以的。第二个不行。你知道吗
我建议您编写一个名为
set_damage()
的方法,它将在内部调用random.randint()
,并更新damage
属性。你知道吗损坏只能在类
random.randint(1, damage)
(在__init__
)的初始化器中调用。我建议您只初始化初始化程序中的max_damage
,然后创建一个新函数来生成损坏,例如:然后你可以用
Spider.get_damage()
代替Spider.damage
来获得每次产生的伤害。希望这是有意义的,祝你的编程工作好运!你知道吗相关问题 更多 >
编程相关推荐