You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何移除随机生成的最低值?D&D角色属性掷骰需求

D&D属性掷骰:去掉4D6中最小值的实现方法

你现在的代码直接把四个D6加起来,没法单独拿到每个骰子的结果,自然没法去掉最小值。换个思路,先把四个骰子的结果存起来,再计算总和减去最小值就行,具体代码如下:

基础实现

import random

# 生成4个1-6的随机数,对应4次D6掷骰
dice_results = [random.randint(1, 6) for _ in range(4)]
# 总和减去最小值,就是最终属性值
stat = sum(dice_results) - min(dice_results)

封装成函数(方便多次生成属性)

如果要生成角色的6个属性值,可以把掷骰逻辑封装成函数,调用起来更方便:

import random

def roll_dnd_stat():
    # 生成4次D6结果
    rolls = [random.randint(1, 6) for _ in range(4)]
    # 返回去掉最小值后的总和
    return sum(rolls) - min(rolls)

# 生成6个属性值
character_stats = [roll_dnd_stat() for _ in range(6)]
print(character_stats)

核心逻辑就是先保存所有骰子的结果,再通过sum()和min()组合计算出最终值,这也是D&D官方推荐的属性生成规则(4d6丢最低)。

内容的提问来源于stack exchange,提问作者LukeB4UGame

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 21:55:14