文章目录
概述
《大观园浮世录 v4》是一个基于《红楼梦》世界观的自动运行叙事模拟器。它不是玩家操控的游戏,而是一台可观察的"命运机器"——每次运行,十个角色根据各自的概率决策模型自主行动,驱动数值累积,最终触发五种结局之一。
本文完整说明其运行机制。
一、核心架构:概率状态机
模拟器的本质是一个带随机扰动的状态机。
每个"回合"(tick)执行以下流程:
tick()
├─ 每3回合推进一天 → dailyChange()
├─ 尝试触发随机大事件 → trySpecialEvent()
├─ 凤姐决策 → decideFeng()
├─ 探春决策 → decideTan()
├─ 贵族层决策 → decideNobles()
├─ 丫鬟层决策 → decideMaids()
├─ 刷新UI → refreshUI()
└─ 检测终局条件 → checkEnd()
是的,行为触发是概率性的。 每个角色在每个回合都会掷一次 Math.random(),依据当前状态动态计算各行为的触发概率,然后执行落入概率区间的那个行为。
二、全局状态变量
模拟器维护一个单一的全局状态对象 G,所有角色共享并互相影响。
2.1 宏观变量
| 变量 | 初始值 | 含义 | 变化方向 |
|---|---|---|---|
treasury |
12000 | 公中银库(两) | 持续下降,归零触发结局 |
deficit |
0 | 家族亏空比率 [0,1] | 持续上升,≥1触发结局 |
morale |
80 | 园中人心 [0,100] | 双向波动 |
turmoil |
0 | 府中动荡 [0,1] | 持续上升,≥1触发结局 |
season |
0 | 当前季节(0春1夏2秋3冬) | 每8天轮换 |
2.2 角色状态变量(以凤姐、探春为例)
凤姐(G.feng)
| 变量 | 初始值 | 含义 |
|---|---|---|
wealth |
0 | 私产积累 |
prestige |
80 | 威望 |
fear |
0.08 | 恐惧值(被查概率影响) |
ledger |
0 | 暗账漏洞数量 |
corruptCount |
0 | 累计克扣次数 |
counterEvidence |
0 | 反咬证据 |
attitude_tan |
'neutral' |
对探春的态度 |
探春(G.tan)
| 变量 | 初始值 | 含义 |
|---|---|---|
evidence |
0 | 掌握的证据份数 |
audits |
0 | 发起查账总次数 |
auditSuccess |
0 | 查账成功次数 |
reformProgress |
0 | 改革推进进度 [0,100] |
attitude_feng |
'ally' |
对凤姐的态度 |
三、角色决策模型
3.1 凤姐的行为树
凤姐每回合掷一次随机数 r ∈ [0,1),与动态计算的概率区间比较:
贪腐概率 = 0.45
+ fear × 0.2 // 越恐惧越贪(捞最后一把)
+ (deficit > 0.4 ? 0.1 : 0) // 亏空严重时更贪
+ (探春态度 hostile ? 0.15 : 0) // 被调查时反而加速敛财
行为优先级如下:
| 概率区间 | 行为 | 效果 |
|---|---|---|
r < 贪腐概率 |
克扣公款 | wealth+,treasury-,deficit+;28%概率留下漏洞 |
+0.20 |
立威施压 | morale-,turmoil+,prestige+ |
+0.18 |
应酬讨好 | prestige+,巩固王夫人支持 |
特判:fear>0.5 && wealth>100 |
利益输送 | 分钱给探春换取停查,evidence- |
| 兜底 | 布置反制 | counterEvidence+ |
漏洞判定:贪腐时额外掷骰,概率为 0.28 + evidence × 0.06——探春掌握的证据越多,凤姐越容易露馅。
3.2 探春的行为树
查账概率 = 0.30
+ evidence × 0.1 // 证据越多越敢动手
+ (ledger >= 2 ? 0.15 : 0) // 发现多处漏洞则主动出击
+ (attitude hostile ? 0.2 : 0)
| 概率区间 | 行为 | 效果 |
|---|---|---|
r < 查账概率 && evidence ≥ 0.5 |
发起查账 | 掷成功率骰子,成功则凤姐prestige-,失败则counterEvidence+ |
+0.25 |
推进改革 | reformProgress+,treasury+(小幅) |
+0.20 |
秘密取证 | evidence+ |
| 兜底 | 休整蓄力 | wealth+(少) |
查账成功率公式:
成功率 = 0.28
+ evidence × 0.12
- counterEvidence × 0.14
- (wfy.suspectTan ? 0.1 : 0)
凤姐的反咬证据、王夫人的猜忌都会削弱查账成功率。
3.3 凤探关系动态变化
探春的态度会根据当前局面自动更新:
if (feng.ledger >= 3 && tan.evidence >= 2) → attitude = 'hostile'
if (feng.ledger <= 1 && tan.evidence < 1) → attitude = 'ally'
else → attitude = 'neutral'
3.4 宝玉的决策模型
宝玉以情绪值 mood 为核心,行为较为简单:
| 概率 | 行为 | 效果 |
|---|---|---|
| 35% | 作诗游园 | mood+,增加叙事活跃度 |
20%(mood<40 时) |
情绪低落 | mood- |
| 15% | 心情大好 | mood+,园中氛围+ |
| 兜底 | 读书发呆 | mood 小幅下降 |
宝玉的心情与黛玉健康高度联动:dailyChange() 中每天会执行 bao.mood += (dai.health > 60 ? +1 : -2)。
3.5 黛玉的决策模型
黛玉有三个核心变量:health(健康)、sadness(愁绪)、poems(诗作数)。
| 概率 | 行为 | 效果 |
|---|---|---|
| 28% | 作诗 | poems+,sadness-(写诗是排解,非加重) |
| 25% | 病情加重 | health-,sadness+ |
sadness>60 时 40% |
悲愁发作 | sadness+ |
| 兜底 | 与紫鹃闲话 | sadness 小幅恢复 |
health 跌至5以下将触发**"黛玉泪尽而逝"**结局。
3.6 丫鬟层决策
六位丫鬟(晴雯、袭人、麝月、紫鹃、雪雁、春纤)各有独立逻辑:
晴雯:受打压程度 targeted 影响健康,才艺技能影响首席进度。
袭人:忠诚度与宝玉好感度联动,低忠诚触发"另觅出路"行为(stats.switches+),spyCount 累积影响王夫人的猜忌值。
麝月:当晴雯被针对 targeted>30 时有25%概率触发调解,稳定 morale。
紫鹃:黛玉健康越低,护主概率越高,同时向探春传递情报(tan.evidence+0.15)。
雪雁:攒钱赎身,wealth≥220 时每回合有12%概率成功赎身;副业是刺探凤姐情报。
春纤:turmoil>0.4 时有20%概率被欺负(bullied+),无其他主动行为。
四、每日全局变化
每3回合推进1天,执行 dailyChange():
deficit += 0.008 + random(0, 0.005) // 亏空自然增长
morale -= 0.5 + random(-0.3, 0) // 人心缓慢下滑
+ reformProgress × 0.01 // 改革可以对冲
turmoil += 0.004 + deficit × 0.02 // 亏空加剧动荡
- reformProgress × 0.005
treasury -= random(30, 80) + deficit × 200 // 每日开销
黛玉愁绪每天也会自然浮动:sadness += random(-3, 4) + (health < 50 ? 3 : 0)。
五、季节系统
每8天轮换一个季节,轮换时触发对应效果:
| 季节 | 效果 |
|---|---|
| 🌸 春 | morale+5,园中生气盎然 |
| ☀️ 夏 | dai.health-3,凤姐趁乱贪腐 |
| 🍂 秋 | morale-3,dai.sadness+8 |
| ❄️ 冬 | treasury-200,deficit+0.03 |
六、随机大事件系统
每回合有 18% 的概率 尝试触发一次大事件,但有冷却时间(触发后4~7回合内不再触发)。
事件库共收录 20+ 件,部分有前置条件(如"晴雯被撵"需要 qw.targeted > 40),防止在角色未受打压时过早触发。
部分代表性事件:
| 事件 | 效果摘要 |
|---|---|
| 省亲消息传来 | deficit+0.12,turmoil+0.15,凤姐趁机捞一笔 |
| 诗社雅集 | morale+12,dai.poems+2,bao.mood+10 |
| 抄检大观园 | turmoil+0.2,qw.targeted+30,morale-15 |
| 宝玉挨打 | bao.mood-25,dai.sadness+20 |
| 探春发现帐本 | tan.evidence+1.5,feng.fear+0.15 |
| 黛玉病重 | dai.health-15,zj.shieldCount+2 |
| 元春赐礼 | morale+15,deficit-0.04 |
| 晴雯被撵 | qw.health-30,bao.mood-30 |
事件不直接决定结局,但会加速或延缓各宏观变量的走向,从而影响哪个结局条件最先达成。
七、结局判定系统
每回合末执行 checkEnd(),按优先级检测五个固定条件:
| 结局 | 触发条件 | 典型路径 |
|---|---|---|
| 树倒猢狲散 | treasury ≤ 0 或 deficit ≥ 1 |
凤姐过度贪腐 + 省亲等大开销叠加 |
| 覆巢之下 | turmoil ≥ 1 |
抄检、贾珍宴客、内耗事件密集触发 |
| 白茫茫大地真干净 | day ≥ 30 |
各方势力维持均衡,撑过30天 |
| 凤凰落架 | feng.prestige ≤ 10 |
探春多次查账成功,凤姐威望耗尽 |
| 黛玉泪尽而逝 | dai.health ≤ 5 |
夏季减损 + 悲愁发作 + 病重事件叠加 |
结局本身是确定的,触发哪个结局是概率性的——每次运行的随机序列不同,数值累积路径也不同,最先触发的条件因此各异。
八、随机性的层次
模拟器中的随机性可以分为三个层次:
第一层:行为选择随机性
每回合的 Math.random() 决定本回合执行哪个行为。这是最基础的随机性。
第二层:数值扰动随机性
即使选定了同一行为,具体数值也有区间浮动。如贪腐金额为 rnd(15, 55),而非固定值。这让每次模拟的节奏有所差异。
第三层:事件触发随机性 大事件的触发概率(18%/回合)和冷却机制共同制造"意外感",使叙事不落俗套。
三层随机性叠加,使得相同的初始条件每次都能产生不同的故事走向。
九、设计意图
这套机制的核心意图是:用数值博弈重现《红楼梦》原著中的结构性悲剧。
- 亏空是不可逆的趋势,不论凤姐贪或探春改革,公中都在持续流失——这对应原著中"百足之虫,死而不僵"的家族衰败。
- 凤姐的贪腐是短期理性行为:她面临恐惧时反而加速捞钱,符合"末世枭雄"的人物逻辑。
- 探春的改革有效但边际递减:
reformProgress能对冲turmoil和morale的衰减,但无法阻止deficit的自然增长。 - 黛玉的结局与宏观政治无关,纯粹由健康和愁绪的随机游走决定——这恰恰是她在原著中的处境。
文档生成时间:2026-03-23 04:11 CST
评论