重复一段"如果"声明

时间:2014-12-17 22:41:41

标签: python

我试图制作一个基于文本的游戏,为了制作我的战斗机制,我必须重复if语句,直到你或怪物死亡。

这是 -
Ph代表玩家健康,str是玩家力量,mdam是怪物伤害,mstr是怪物力量,monsterh是怪物健康,{{1}你收到的攻击加值(加上这个,有没有办法将数字四舍五入到一个或没有小数位?)谢谢! :d

random.random()

2 个答案:

答案 0 :(得分:0)

将您从

获得的值四舍五入
random.random() 

你可以做到

round(random.random(),1) 

舍入到小数点后1位,或者如果要删除小数,请替换

random.random() 

int(random.random())

至于重复if语句,你可以将它放入一个循环中,当一个条件满足时它会中断

while true:
    if fight == "A" and ph > 0:
        damage = (str) + (int(random.random()))
        monsterh = 6
        mstr = 0.9
        monsterh = (monsterh) - (damage)
        print(damage)
        print(damage - str)
        print('You attack the monster. You deal %s damage.' % damage ) 
        time.sleep(3)
    elif ph<=0 or fight!="A":
        print("You lose!")
        break
    if monsterh > 0:
        mstr = 0.9
        mdam = (mstr) + (int(random.random()))
        print('The monster attacks you!')
        ph = ph - mstr
        print("You get hit %s" % mdam )
    else:
        xpgain = damage + 5
        print("You won! You've gained %s XP!" % xpgain)
        break

虽然你不需要

fight!="A"
,因为我根本不认为你会改变战斗的价值。

你也不必做

mdam = (mstr) + (int(random.random()))

你可以做到

mdam = mstr+int(random.random())

以上^也适用于代码中的其他位置。如果您有任何疑问,请随时提出。

答案 1 :(得分:0)

我会在一个循环中看到你的战斗。例如:

while (ph > 0 or monsterh > 0)
    # combat rules

# Check who died and move on from there
if (ph > 0)
    # next thing the player does
else
    # print "You died"

关于舍入,有多种选择,具体取决于您想要做什么:python: getting only 1 decimal place