我试图制作一个基于文本的游戏,为了制作我的战斗机制,我必须重复if语句,直到你或怪物死亡。
这是 -
Ph
代表玩家健康,str
是玩家力量,mdam
是怪物伤害,mstr
是怪物力量,monsterh
是怪物健康,{{1}你收到的攻击加值(加上这个,有没有办法将数字四舍五入到一个或没有小数位?)谢谢! :d
random.random()
答案 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