• 沒有找到結果。

第三章 程式實作方式

3.2 動態權重調整

如同前面所說的,大部分的麻將程式在決定該捨棄哪張牌時,所依據的就是 當捨棄那張牌後,能夠使得我們可以等的牌會最多。因為麻將是一個不完全資訊 且富含機率的遊戲,所以我們通常會假定所有的牌出現的機會是均等的,以摸牌 來說這樣的考量是很正確的,就算有些牌已經在別人手上因此是不會被我們摸到,

但因為不確定別人是什麼牌,因此就假定沒出現的牌都有可能摸到,且因為牌堆 一開始就設定好,所以每一張牌大致上可以視為相等的機率分布。但是真實情況 中別人的捨牌其實並非如此,因為其他玩家的捨牌包含了他的決策,他並不是隨 意打一張出來,而是打出對他有利的一張牌,因此這就會使得每張牌出現的機率 不均等。簡單的舉例來說,如果為了要讓自己快速胡牌,通常會優先打出字牌,

再來是邊張牌,最後才是中間牌,並且打牌中通常會包含自己的習慣,像是萬筒 條會優先捨棄哪一張等等,因此就可以利用統計的方式得出那些牌是比較常出現 的,並且這個動作是可以在遊戲過程中來執行,也就是隨著我們逐漸知道別人的 捨牌取向,我們就可以找出更正確的捨牌。舉例來表 3-5 就是 TAAI 2012 比賽時 其他家的捨牌取向。其中數字表示那張牌被捨棄的總次數。

數字

從這裡可以發現若看萬子的部分(如圖 3-4 所示),其他玩家打出一萬的機率 將近是五萬的四倍,同時其他玩家比較傾向從萬子開始捨牌,而有了這樣的資訊,

我們就可以做出更準確的判斷,並且這些統計都是在遊戲過程中動態做蒐集,因 此無論是對到什麼樣的對手都可以做此統計,若對方有在遊戲中調整策略我們也 可以自動把權重更新回來進而應對。

而中間有些像是六萬或是七條有出現偏高的情況,這邊推論有可能是統計次 數不夠多所導致,或者是其他程式真的有某些決策方式使得他們會有這樣的傾向,

但無論如何都可以發現捨牌大約呈現一條向下凹的曲線,而根據一些專家所寫的 麻將相關書籍,也都有提到說其實等邊張牌的效果是很不錯的。

再者,我們可以再將統計細分為各家結果,也就是記錄每一家的捨牌傾向。

對於「吃」的牌來說,我們只能自己摸到或者是上家打出,而對於「碰」的牌來 說,則是四家都可以,因此若我們得知了上家的打牌特性,就可以更準確等到我 們想「吃」的牌,這方式在各家打牌習慣有明顯差異時就可以起到充足的作用,

例如前項統計結果顯示萬子的出現率較高,但若現在有另一家較容易打筒子,而 他處於我們上家時,我們就可以將我們想「吃」的牌朝向筒子方向做發展,藉此 就可以提高進牌的機率。

相關文件