所以我正在编写一些代码来滚动三个软糖骰子(六边形骰子,边长为-1,-1,0,0,+ 1,+ 1)。如果三个骰子一起滚动总共-3个,我有一个函数,然后一遍又一遍地滚动一个软糖骰子,从每个-1的总数中取1并进行滚动并退出,如果不是一个-1滚动 - 这样我得到一个"爆炸"虽然越来越不可能使总数小于-3。
我的爆炸功能是:
def explodedown():
curval = -3
while 1:
newroll = rolldie()
if newroll != -1:
break
else:
curval = curval-1
return curval;
这似乎工作得很好,但我几乎觉得如果我想更简单地写这个,应该有一些方法来编写循环更像:
while newroll == -1
newroll = rolldie()
curval = curval-1
然后循环自然会破坏而不需要if语句。问题是newroll在我们进入循环之前不存在,所以我认为这不会起作用。也许如果我在循环开始之前添加了另一个语句,如:
newroll = rolldie()
while newroll == -1
newroll = rolldie()
curval = curval-1
但是将newroll线放在那里似乎并不是pythonic。
思考?有没有办法简化并使我的爆炸功能更具可读性?
答案 0 :(得分:3)
你可以这样做:
while rolldie() == -1:
curval -= 1