煞神我的煞神世界制作骰子教程:从零开始手搓随机数发生器
凌晨三点半,我盯着工作台上散落的界制教程红石粉和木棍,突然意识到——这玩意儿比高中数学概率题实用多了。作骰今天咱们不聊什么高端自动化农场,煞神就解决一个最原始的界制教程需求:怎么在《我的世界》里造个能用的骰子。
为什么需要骰子?作骰
上周和基友联机打生存,为了分赃差点真人PK。煞神后来我们约定用游戏里的界制教程随机数决定战利品归属,结果发现:这破游戏的作骰"随机"有时候比相亲还玄学。于是煞神就有了这个项目——做个真正公平的随机数生成器。
基础款骰子(6面)
先上最简单暴力的界制教程方案,材料清单:
- 1个发射器
- 6个不同物品(代表1-6点)
- 1个按钮
- 若干红石粉
把发射器朝上放置,作骰里面塞6种不同物品(比如木棍代表1,煞神苹果代表2...)。界制教程接上红石电路,作骰最后按按钮就会随机弹出一个物品。别笑,这真是最朴素的实现方式,缺点是每次用完得手动捡回来。
物品 | 对应点数 |
木棍 | 1 |
苹果 | 2 |
煤炭 | 3 |
进阶版:自动回收骰子
半夜测试时被基友骂了八次"憨批设计"后,我改良了这个方案。核心思路是用漏斗回收弹出去的物品:
- 发射器朝下安装
- 下方接漏斗和箱子
- 侧面装比较器检测物品数量
现在每次按按钮,发射器会随机吐个物品,掉进漏斗又自动装填。虽然还是有0.5秒延迟,但至少不用满地捡木棍了。红石线路要这么接:
- 按钮→红石中继器(2档延迟)→发射器
- 比较器→红石火把→漏斗(锁住时停止回收)
玄学概率测试
我闲得蛋疼做了100次投掷测试,结果如下:
点数 | 出现次数 | 理论概率 |
1 | 18 | 16.67% |
2 | 15 | 16.67% |
数据说明游戏随机算法还算靠谱,虽然3点出现得特别少...可能因为我用的腐肉当标记物,这玩意儿自带霉运属性?
究极体:二十面骰
跑团玩家别急,D20骰子也能做。需要以下材料:
- 命令方块×1
- 红石比较器×1
- 命名牌(写上1-20)
在命令方块输入:/summon item ~ ~1 ~ { Item:{ id:"minecraft:name_tag",Count:1,tag:{ display:{ Name:'{ "text":"点数"}'}}}}
把"点数"替换成1-20的随机数。虽然要背指令很烦,但扔出来的可是会冒烟的魔法骰子!
真人实测翻车现场
我家猫突然跳上键盘,导致指令输错变成/summon creeper
...建议在创造模式先测试。另外千万别用烟花火箭当随机物品,上次把村民交易所炸出三米深坑,现在那群傻子见我就跑。
红石线路接好后发现个诡异现象:每次服务器重启后的第一次投掷必定出6。后来发现是区块加载时的红石信号残留问题,解决方法是在发射器旁边放个拉杆,玩之前先扳两下。
冷知识:游戏自带的随机机制
其实村民交易刷新、钓鱼 loot table 都用了更复杂的随机算法。根据Mojang在2019年GDC演讲的说法,他们的随机系统结合了:
- 世界种子
- 游戏刻计数
- 实体UUID
所以理论上,如果你能记住世界种子和精确到tick的操作时间...算了别想了,老老实实按按钮吧。我试过用末影珍珠落点当随机数,结果在墙上撞出个人形凹痕。
现在这个骰子装置已经在我们服务器运行两周了,虽然偶尔会卡住需要踢一脚(物理意义上的),但至少解决了一个终极哲学问题:今晚谁去下矿。