在卡片遊戲上,一般都會有六種卡片:能看的卡片,和不能看的卡片;能動的卡片,和不能動的卡片;朝上的卡片,和朝下的卡片。本文旨趣在「能看」和「朝上下」的情況。
而這個引擎,就是提供一個版面。該版面可以被使用者分為若干的區塊,不同的區塊可以有不同的 read access 權限。在遊戲進行期間,卡片會落在不同的區塊上,使用者可以使卡片在不同的區塊上移動,讓遊戲進行。
一個區域,有三種權限:
- 完全讀取(R)
- 不能讀取+可知區內卡片數量(r)
- 不能讀取+不可知區內卡片數量(0)。
說到這裡,大家會一頭霧水。以下就來一個示範。
就以鋤大 D 為例,整個版圖會是這樣的狀況。

每個人都擁有自己一個區域,等如自己手上的牌。在自己的區域裡,就只有自己能夠看到,其他人都看不到,只是看到牌子數量。進行遊戲時,大家就是根據鋤大 D 的規則把牌子丟去出牌區,使所有人能看見。出完牌就獲勝。
要注意的是,這個引擎並不會控制遊戲的流程。引擎容許一個玩家出錯牌,把出牌區的牌收到自己的手上,甚至把別人的牌搶去亂丟。但這個引擎本來就預設玩家和玩家之間存在著互信。實際上,即使在現實的物理世界,以上奇怪的狀況都不會違反物理法則,只是會遭人白眼。
再說個例子,麻雀是這個狀況。

現在每人多了一個自己的放牌區,用來放「碰」「上」「槓」的牌。
中間多了一個抽牌區,不消說,是用來抽牌的。
說到這裡,要是大家不是一頭霧水的話,就可能有疑問:如何派牌?
為了做派牌的動作,還需要多一個特殊區域:隨機區。隨機區能存放多個牌,所有使用者都可以從隨機區拉出牌子出來,拉出的牌子是隨機的。
就以鋤大 D 為例,開局時,各人就各自從隨機區拉出 13 隻牌。
而在麻雀,開局時,各人就各自從隨機區拉出 12 隻牌。然後不論是模牌還是補牌,都是在隨機區拉牌出來。
說到這個東東的好處嘛...
- 支援所有卡片遊戲 (希望)
- 能記錄所有的流程
- 發明新 board game 時,不消 10min 設定就能立刻試玩。
- 感覺上要制作這樣的程式,也好像不太困難...
就這樣。
1 則留言:
I thought about this some years ago too...
張貼留言