極速模式與第三顆骰子
一種更快、更隨性的玩法——回合更短,想在哪建房就在哪建,還有一顆能把你傳送到棋盤各處的第三顆骰子。

通俗版
時間不多,又想玩上一整局?極速模式就是答案。回合的計時更緊——每個回合大約 45 秒——所以整局棋會結束得早得多,而這份壓力會讓所有人始終保持警覺。
建造也更自由。在經典對局裡,你必須把房子在一個顏色組裡平均鋪開,每回合只能建一棟。而在極速模式裡,你可以把一切都砸進同一條街,並在一次行動中盡你所能地多建。如果你抵押了一處地產,就會有一個倒數計時開始:及時把它贖回,否則它就會回到銀行手裡。
頭號亮點是第三顆骰子,它從第 7 回合起加入擲骰。它會改變你在棋盤上的移動方式:
- 數字會加進你的擲骰結果——兩顆白骰子再加上第三顆,於是你能走得更遠。
- 巴士讓你自行選擇走法:取全部點數之和,或只取其中一顆白骰子。
- An "X" (Mr. Monopoly) 會把你送到最近的空閒地產,或最近的、你將不得不向其付款的對手處。
- 三連——三顆骰子點數全部相同——讓你傳送到棋盤上的任意一格,然後再擲一次。
| 經典 | 極速 | |
|---|---|---|
| 回合計時 | ~90s | ~45s |
| 建造 | 均衡,每回合一棟 | 隨處,每回合多棟 |
| 第三顆骰子 | 無 | 從第 7 回合起 |
| 抵押 | 永久 | 計時到期後自動釋放 |
技術細節
各模式共用同一個引擎。新增的 modes.ts 儲存著 MODE_CONFIGS——每個模式的初始資金、回合計時器、回合上限、收稅時機,以及是否允許不均衡建造——守護程式在開局時讀取該對局的模式,挑選對應配置,並把它傳入 initializeGame。每回合的截止時間使用該模式的 turnSeconds;經典模式則保留可由管理員調節的基礎值。
// packages/game-engine/src/modes.ts
export const MODE_CONFIGS: Record<GameMode, ModeConfig> = {
classic: { startingCash: 15000, unevenBuild: false, turnSeconds: 90 },
speed: {
startingCash: 30000,
unevenBuild: true, // build any property, multiple per turn
turnSeconds: 45,
speedDie: true,
speedDieFromRound: 7,
},
// ...
};第三顆骰子被隔離在 speed-die.ts 中——SpeedFace 型別、rollSpeedDie、busOptions、isSpeedTriple 以及最近地產的若干輔助函式——它並不是一個分叉。共享的歸約器只有在 state.mode === "speed" 時才會呼叫它,並複用常規的移動與落地程式碼,因此經典模式毫髮無損,引擎此前的所有測試也全部保持通過。
這顆骰子無需任何資料庫遷移:新狀態(最後一次的極速骰面,以及待處理的巴士 / 傳送 / 重擲)存放在 engine_state 的 JSON 裡,骰子的點數則搭載在可選的 dice_rolled.speedDie 載荷欄位上——沒有新的事件型別。遷移 0024 只是放寬了 create_game 以接受 "speed" 模式;列舉和欄位早已存在。
