如何让这段代码在每次调用Python时随机选取一个数字?

2024-09-27 00:20:31 发布

您现在位置:Python中文网/ 问答频道 /正文

#randomly picks a monster for a random encounter        
class RanMob:
    #randint(1,2)
    roll=Dice.die(2)
    if roll ==1:
        mob=Goblin(Goblin.name,Goblin.hp,Goblin.thaco,Goblin.ac,Goblin.inventory)
    if roll ==2:
        mob=Orc(Orc.name,Orc.hp,Orc.thaco,Orc.ac,Orc.inventory)

while True:
    #pick a new random monster
    RanMob()
    #print the name of the random monster
    print(RanMob.mob.name)

当我运行这段代码时,RanMob类第一次选择一个新的随机数,然后从不选择新的数。如何让它在每次调用主游戏循环中的RanMob时选择一个新的mob?你知道吗


Tags: thenameifrandomachpinventorymob
1条回答
网友
1楼 · 发布于 2024-09-27 00:20:31

不要使用类。类主体只执行一次(当Python遇到class语句时)。这里的RanMob()行是完全冗余的,执行Dice.die()调用的不是那一行。你知道吗

使用函数并返回结果:

def ranmob():
    #randint(1,2)
    roll=Dice.die(2)
    if roll ==1:
        return Goblin(Goblin.name,Goblin.hp,Goblin.thaco,Goblin.ac,Goblin.inventory)
    if roll ==2:
        return Orc(Orc.name,Orc.hp,Orc.thaco,Orc.ac,Orc.inventory)

while True:
    #pick a new random monster
    mob = ranmob()
    #print the name of the random monster
    print(mob.name)

相关问题 更多 >

    热门问题