規則頁面現在描述的是我們真正上線的遊戲
規則書、指南和「怎麼玩」頁面早已與遊戲脫節。三者全部重寫,指南新增六張圖片,另有五個全新的參考頁面加入。

通俗版
解釋 opolyx 的四個頁面,悄悄落後於它們所解釋的遊戲。團隊模式在規則書和指南裡一次都沒出現過,儘管你在大廳裡就能選到它。第 20 格被叫作「免費停車」,可它幾個月來一直是「大獎」——而規則書裡根本沒提過大獎。監獄那節說三次嘗試失敗後就會被釋放,實際上是被收取保釋金。租金規則漏掉了收藏卡帶來的加成。「怎麼玩」頁面還給出了一張遊戲裡根本不存在的出獄卡。
最糟的一句在指南裡:「在第 20 回合之後贏下一局真實對局,你會獲得一張地產卡外加 200 經驗」。門檻是五個回合而不是二十,而且自進度更新以來每個座位都能獲得經驗——那句話同時在十種語言裡都是錯的。四個頁面全部對照程式碼重寫:規則書從 13 節增加到 17 節並覆蓋所有模式,指南從 22 節增加到 26 節。

指南也終於有了圖片:十張配圖而不是四張,全部取自真實對局。購買、拍賣、建造、還債、極速骰和大獎現在各有一張截圖,另有三張舊圖重拍,因為它們呈現的是我們已經不再上線的棋盤。
此外還有五個新的參考頁面,給喜歡細節的人:來自約四千局模擬對局的統計、逐格的棋盤參考、建議來自那些統計而非個人觀點的策略指南、十八個術語的詞彙表,以及與 Monopoly One 的一份誠實比較——opolyx 正是以它為藍本。
技術細節
文件之所以會漂移,是因為它是一份副本。可行之處的解法就是不再抄寫:指南裡的模式比較表原本是把各模式設定手工謄抄一遍,現在直接由那些設定生成。
// components/GuideDoc.tsx — the comparison table reads the real configuration
const columns = MODE_COLUMNS.map((mode) => ({ mode, cfg: modeConfig(mode) }));
return [
row('cash', (c) => c.startingCash.toLocaleString('en-US')),
row('turn', (c) => `~${c.turnSeconds}s`),
row('cap', (c) => String(c.roundCap)),
row('die', (c) => (c.speedDie ? `✓ (${c.speedDieFromRound}+)` : '—')),
];
// modeConfig() is what the game server reads when a game starts, so the table
// cannot drift from the rules actually being applied.缺圖這件事有一個值得記住的機械原因。只有當某一節映射了截圖時,指南才會渲染它的圖注——於是五條已經寫好、審校並譯成十種語言的圖注,從來沒有被任何人看到過。把截圖補上,讓五十條譯文重新開始工作。
統計頁面是全站唯一無法從別處照搬的東西:它由真實引擎——執行你對局的同一份程式碼——在所有模式、所有人數下執行數千次生成。它同時也在檢驗自己:實測的雙骰率為 16.68%,理論值為 16.67%,並有一個測試斷言二者吻合,因為這是證明模擬沒有被悄悄弄壞的最便宜方式。
