[本文出自天外归云的博客园]
今天玩儿龙珠激斗的大冒险时掷筛子的时候想了想掷筛子的算法,自己写着玩儿。代码如下:
''' 龙珠大冒险掷筛子介绍: 在地图中掷筛子 如果地图剩余格子数大于6则默认进行十连掷 十连掷不能超过剩余格子数否则进行最大次数连掷 如果地图剩余格子数小于等于6则进行单掷 如果单次掷筛子结果大于剩余格子数则进入下一张地图 输入: 剩余格子数 输出: 掷筛子的结果 ''' import random def throw_once(): return random.randint(1,6) def throw_times(n,cells): ret = [] while n > 0: curr = throw_once() if curr <= cells: ret.append(curr) cells = cells-curr n -= 1 else: return ret else: return ret def throw_dices(cells): if cells > 6: _ret = throw_times(10,cells) else: _ret = throw_once() return _ret if __name__ == '__main__': cells = 33 print(throw_dices(cells))