玩法
認識你的新對手:更聰明、更鮮活的機器人
機器人現在有了個性——它們會交易、建造、出價、盯上領跑者,甚至用貼紙做出反應。每一局都各不相同。

通俗版
過去和電腦對戰總覺得有點平淡:舊機器人擲骰子、買下落到的格子,也就這些了。如今不一樣了。你的對手現在有了真正的個性,而且它們真的是為了贏而玩。
每個機器人都由一個難度(簡單、中等或困難)和一種性格混合而成。你可能遇到一個謹慎囤錢的銀行家,一個酷愛大獎的魯莽賭徒,一個緊盯某個顏色組的專家,或是一個心懷怨恨、專門圍攻領跑者的對手——也就是你。
- 它們會向你發出交易報價——用一處多餘的地產加上現金換取它們需要的格子——也會回應你的報價。
- 它們按價值建造,把房子蓋在租金回報最快的地方。
- 它們會在拍賣中出價,困難機器人甚至會為湊齊一組而多花錢。
- 當一筆交易讓人肉痛、或落下一筆大額租金時,它們會在聊天裡用貼紙做出反應。
| 性格 | 打法 |
|---|---|
| 壟斷者 | 囤積一個顏色組,不讓你湊齊 |
| 專家 | 全力押注一到兩個顏色組 |
| 報復型 | 對領跑者步步緊逼 |
| 冒險家 | 出價高,酷愛大獎 |
| 烏龜 | 慢慢建造,囤積現金 |
3
難度等級
5
性格原型
9
自動混合打法
400
fast-check 壓力執行
想來一局輕鬆的?簡單機器人玩起來和經典、溫和的對手一模一樣——休閒對局裡什麼都不會變。
由於難度和性格會被混入每一張牌桌,沒有哪兩局會以相同的方式展開。如今這塊棋盤有了自己的個性。
技術細節
每個機器人都帶有一個可選的檔案——一個難度等級與五種原型(壟斷者、專家、報復型、冒險家、烏龜)之一交叉,按每局自動混合成九種打法。該檔案是一組 0–1 的旋鈕,左右著每一個決策:購買、建造、交易、拍賣出價以及監獄保釋。
ts
// packages/game-engine/src/bot/profile.ts
export type Difficulty = 'easy' | 'medium' | 'hard';
export type Archetype =
| 'monopolist' // hoards a colour group, denies opponents' sets
| 'specialist' // commits to one or two groups
| 'vindictive' // piles pressure on the net-worth leader
| 'risktaker' // bids high, plays the Jackpot
| 'turtle'; // builds slowly, hoards cash
export interface BotProfile {
difficulty: Difficulty;
archetype: Archetype;
aggression: number; // 0..1 — buy/bid/build appetite
tradeAppetite: number; // 0..1 — how often it proposes deals
}該檔案承載於 PlayerState.botProfile,在開局時烘焙進遊戲的 engine_state ——和隊伍欄位一模一樣——因此沒有任何資料庫遷移。一個沒有檔案的簡單機器人,逐位元組就是原來的那個對手,這也是為什麼之前的每一項測試都依然通過。
困難機器人會出高於標價的價格來完成壟斷,但設有上限,使拍賣始終能夠結束:
ts
// over-list bid, bounded so the auction always terminates
const maxBid = Math.round(listPrice * (1 + 0.4 * profile.aggression));一切都保持確定性並保證能夠結束:機器人的交易受到嚴格限制(同一時間只有一份未結報價、帶種子的頻率、只發出接收方會接受的報價),而且模擬器在 2–6 名玩家、400 次隨機 fast-check 執行中經受了壓力測試。Engine 282 / daemon 91 測試全部通過。
