跳转到正文
文章目录

概述

《大观园浮世录 v4》是一个基于《红楼梦》世界观的自动运行叙事模拟器。它不是玩家操控的游戏,而是一台可观察的"命运机器"——每次运行,十个角色根据各自的概率决策模型自主行动,驱动数值累积,最终触发五种结局之一。

本文完整说明其运行机制。


一、核心架构:概率状态机

模拟器的本质是一个带随机扰动的状态机。

每个"回合"(tick)执行以下流程:

</> PLAINTEXT
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),与动态计算的概率区间比较:

</> PLAINTEXT
贪腐概率 = 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 探春的行为树

</> PLAINTEXT
查账概率 = 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+(少)

查账成功率公式:

</> PLAINTEXT
成功率 = 0.28
       + evidence × 0.12
       - counterEvidence × 0.14
       - (wfy.suspectTan ? 0.1 : 0)

凤姐的反咬证据、王夫人的猜忌都会削弱查账成功率。

3.3 凤探关系动态变化

探春的态度会根据当前局面自动更新:

</> JAVASCRIPT
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():

</> JAVASCRIPT
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

评论

搜索站内内容

输入关键词开始搜索