Skip to content

refactor(rand): 数据源产出封装,并支持纯随机数据源初始化 - #19

Merged
fy0 merged 2 commits into
mainfrom
fengzhuang
Jul 29, 2026
Merged

refactor(rand): 数据源产出封装,并支持纯随机数据源初始化#19
fy0 merged 2 commits into
mainfrom
fengzhuang

Conversation

@PaienNate

Copy link
Copy Markdown
Contributor

为未来去海豹整神秘小活做准备。

随机源

DiceScript 默认使用 PCG 随机源。PCG 源支持保存和恢复当前随机状态,适合需要复现骰点序列、调试或续跑的场景:

vm := dicescript.NewVM()
seed, err := vm.GetCurSeed()

vm2 := &dicescript.Context{Seed: seed}
vm2.Init()

如果需要接入其他随机源,可以设置 Context.RandSrc。掷骰逻辑只要求随机源实现 Uint64() uint64

vm := dicescript.NewVM()
vm.RandSrc = dicescript.NewCryptoDiceSource()

需要注意的是,真随机源不支持保存和恢复状态。此时调用 GetCurSeed() 会返回 ErrDiceSourceStateUnsupported

@fy0
fy0 merged commit c4c99fe into main Jul 29, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants