我正在制作一个程序,部分地滚动四个骰子并从结果中减去最低的骰子.我正在使用的代码是
die1 = random.randrange(6) + 1
die2 = random.randrange(6) + 1
die3 = random.randrange(6) + 1
die4 = random.randrange(6) + 1
if die1 <= die2 and die1 <= die3 and die1 <= die4:
drop = die1
elif die2 <= die1 and die2 <= die3 and die2 <= die4:
drop = die2
elif die3 <= die1 and die3 <= die2 and die3 <= die4:
drop = die3
else:
drop = die4
cha = die1 + die2 + die3 + die4 - drop
Run Code Online (Sandbox Code Playgroud)
从我迄今为止有限的编码能力来看,这是我能想到的最好的.有没有更好的方法让它按照大小顺序组织四个骰子,然后将三个最高点加在一起而忽略剩下的?或者我正在使用最好的方法代码吗?
将骰子放入列表中,sorted使用切片对列表进行排序并使用切片删除最小元素:
>>> import random
>>> dice = [random.randint(1, 6) for x in range(4)]
>>> sum(sorted(dice)[1:])
13
Run Code Online (Sandbox Code Playgroud)
或者更简单的替代方案,如果你有很多骰子也会更快:使用min来找到最小的骰子并从它们的总和中减去它们:
>>> sum(dice) - min(dice)
13
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
151 次 |
| 最近记录: |