• 沒有找到結果。

電腦麻將程式TaKe的設計與實作

N/A
N/A
Protected

Academic year: 2021

Share "電腦麻將程式TaKe的設計與實作"

Copied!
76
0
0

加載中.... (立即查看全文)

全文

(1)國立台灣師範大學 資訊工程研究所碩士論文. 指導教授: 林順喜 博士. 電腦麻將程式 TaKe 的設計與實作. The Design and Implementation of the Mahjong Program TaKe. 研究生:沈庭瑋 撰 中華民國. 一百零三 年. 七. 月.

(2) 摘. 要. 電腦麻將程式 TaKe 的設計與實作 沈庭瑋 近年在科技不斷進步之下,人工智慧電腦對局也不斷有新的發展與成果,越 來越多新的技術被研發出來,舊有的技術也越來越成熟,但是相對於明確資訊的 對局遊戲,不明確且帶有機率性的對局遊戲程式一直以來在學術上討論、探討的 相關演算法較為少見,因此在這篇論文之中將會討論關於電腦麻將程式的人工智 慧開發,所運用到的技術。 在本篇論文中,將會說明電腦麻將程式 TaKe 中所使用到的貝氏信賴網路演 算法,以及人類麻將高手會使用的打牌技巧,如何來輔助電腦程式,找尋在過去 麻將論文中較少提到的避免放槍機制,提供新的捨牌策略,以做到降低放槍機率。 目前該程式曾在 TAAI 2013 電腦對局比賽獲得銅牌,在 TCGA 2014 電腦對 局比賽雖然獲獎未果,但是在比賽過程中該程式放槍次數是最低的,以玆證明使 用的方法確實能達到期望中避免放槍的效果。在台灣十六張麻將雖然多以胡牌為 最主要目的,但是在日本麻將因計分方式不同,因此未來若是有興趣開發日本麻 將,或是在其他帶有機率性、不明確資訊遊戲的電腦程式開發,期望本論文能給 予開發者一些啟發。. 關鍵字:人工智慧、電腦麻將、不完全資訊遊戲、貝氏信賴網路. i.

(3) ABSTRACT The Design and Implementation of the Mahjong Program TaKe by Ting-Wei Shen Because of the advances in science and technology, many computer games researchers continue to advance new methods and achievements in recent years. The existing technology has become increasingly mature. But relative to the perfect information games, programs that play imperfect information games have never been easier to compete with human players. And there is less paper talking about the algorithms that related to imperfect information games. In this thesis, we will discuss the development of computer AI program for playing mahjong. This thesis will explain most of the algorithms which have been used in our mahjong program “TaKe”. These algorithms include the skills that many master mahjong players have, and a Bayesian network algorithm to devise new strategies to change the original card throwing decision, and to reduce the winning rate of other players. Our program “TaKe” had won the bronze medal at TAAI 2013 computer game competitions. Though it hadn't won any prize at TCGA 2014 computer game competitions, but the number of the cards it was throwing result in a win to other players was the smallest, so that these methods are able to achieve the desired effect. We expect that the methods presented in this thesis can not only be used for the computer mahjong program, but also for any other imperfect information games with probability in the future.. Keywords: artificial intelligence, computer mahjong, imperfect information game, Bayesian belief network. ii.

(4) 目 摘. 錄. 要 .................................................................................................................... I. ABSTRUCT .............................................................................................................. II 目. 錄 .................................................................................................................. III. 表目錄 .................................................................................................................. IV 圖目錄 ................................................................................................................... V 緒. 論 .................................................................................................... 1. 麻將介紹................................................................................................. 7. 貝氏信賴網路 ....................................................................................... 27 程式實作方式 ....................................................................................... 30. 實驗與成果 ........................................................................................... 47. 結論與未來展望 ................................................................................... 55 附. 錄 ................................................................................................................. 57. 參考文獻 ............................................................................................................. 68. iii.

(5) 表目錄 表 1 分數計算..................................................................................................... 10 表 2 THOUSANDWIND 在 2012 比賽蒐集的捨牌傾向 ..................................................... 22 表 3 節點 A 的機率表 .............................................................................................................. 34 表 4 節點 B 之範例樣式 .......................................................................................................... 34 表 5 節點 C 的機率表 .............................................................................................................. 35 表 6 節點 D 之吃牌捨牌後可能要的牌 .............................................................................. 37 表 7 節點 D 之吃牌機率表 ..................................................................................................... 37 表 8 節點 D 之碰牌機率表 ..................................................................................................... 38 表 9 節點 D 之兩巡捨牌之機率表 ....................................................................................... 38 表 10 場上剩餘幾張時的碰牌機率表(部分) ..................................................................... 39 表 11 1:3 權重表......................................................................................................................... 44 表 12 1:3 實驗結果 .................................................................................................................... 45 表 13 1:1 權重表......................................................................................................................... 45 表 14 1:1 實驗結果 .................................................................................................................... 46 表 15 巡目實驗結果................................................................................................................. 48 表 17 TCGA 2014 總結果 ......................................................................................................... 52 表 18 TCGA 2014 人機大賽結果 ........................................................................................... 54. iv.

(6) 圖目錄 圖 1 線上麻將平台範例............................................................................................... 2 圖 2 組........................................................................................................................... 4 圖 3 搭........................................................................................................................... 4 圖 4 胡牌範例............................................................................................................... 5 圖 5 花牌....................................................................................................................... 8 圖 6 遊戲進行範例....................................................................................................... 9 圖 7 電腦對局平台..................................................................................................... 11 圖 8 RULES OF MAHJONG ............................................................................................ 12 圖 10 位於千葉縣的麻將博物館............................................................................... 13 圖 13 王牌示意圖....................................................................................................... 17 圖 14 加分指示牌及其加分牌範例........................................................................... 18 圖 15 TAAI 2013 銅牌 .................................................................................................. 19 圖 16 程式執行畫面................................................................................................... 20 圖 17 決定避免放槍的範例....................................................................................... 23 圖 18 小三元............................................................................................................... 24 圖 19 清一色............................................................................................................... 24 圖 20 故意放槍範例................................................................................................... 26 圖 21 貝氏信賴網路範例[21] .................................................................................... 27 圖 22 同線牌範例....................................................................................................... 30 圖 23 麻將之貝氏網路架構....................................................................................... 33 圖 24 計算放槍率範例............................................................................................... 41 圖 25 胡牌權重值範例................................................................................................ 43 圖 26 胡牌與放槍權重關係....................................................................................... 44 圖 27 TCGA2014 放槍次數 .......................................................................................... 50 圖 28 TCGA2014 胡牌次數 .......................................................................................... 50 圖 29 TCGA2014 自摸次數 .......................................................................................... 51 圖 30 余筱萍及李亞萍小姐參加 TCGA 2014 麻將人機大賽 ................................... 54 v.

(7)

(8) 緒. 論. 1.1 研究背景 在人工智慧的研究領域之中,電腦對局一直是一個十分重要的部分。例如有 雙人、多人對抗遊戲、益智解題遊戲等研究,都是為了讓電腦可以在各種遊戲能 有像人類玩家般的行為,並且有能力與真人玩家競爭;因此研究學者們推出各式 各樣新的、改進的演算法與資料結構,加上硬體的效能與日俱增,使得電腦程式 的競爭力更為提升。現今許多遊戲人工智慧的子力已經能和職業的人類玩家一搏, 未來肯定越來越多的遊戲人工智慧可達到這樣的水準。 電腦對局遊戲一般分為完全資訊和不完全資訊,或是有機率成分和無機率成 分兩種,前者是依照雙方玩家是否能夠依照場面上的狀況取得彼此雙方資訊來區 分該遊戲為完全資訊與不完全資訊,例如西洋棋屬於完全資訊,整個棋盤都是攤 開的,玩家可以從棋盤上知道敵對玩家目前的棋力為何;而德州撲克就屬不完全 資訊,玩家之間是無法得知其他玩家的手牌為何。機率成分與非機率成分則是取 決於是否有有機率因素影響遊戲,例如麻將就是有機率因素在遊戲中,從開局洗 牌、碼牌、開牌、發牌到每巡的摸牌,另外還有開門位置也是靠擲骰子來決定, 都是有機率成分在內,麻將和撲克遊戲相同皆不知道其他玩家的手牌,因此也屬 於不完全資訊的遊戲。 麻將是源自中國的策略型遊戲,遊戲人數以四人居多,也有其他二、三人的 變形。各地,各國皆有自行發展出來的規則,尤其是計算分數的方式或是牌張數. 1.

(9) 不同,像是日本麻將沒有花牌、手牌是十三張,但是目的皆是讓手牌達到幾個組 合來取得勝利;麻將遊戲內含技巧、策略和計算,同時也含有賭博性的機率在, 且麻將的組合多樣化,不同的組合可得到不同的分數,因此需要很複雜的計算、 分析。目前已存在許多線上的麻將對弈平台,如圖 1 為神來也麻將線上平台,可 供玩家在網上湊桌對局,許多國家也有舉辦麻將比賽,在台灣,中華麻將競技協 會就有在推廣麻將競技、在各地舉辦比賽。. 圖 1 線上麻將平台範例1. 麻將此策略競技游戲,技藝巧思,佈局高深,廣受國民喜愛,在人工智慧研 究方面,麻將也被台灣電腦對局學會(TCGA:Taiwan Computer Game Association)、 中華民國人工智慧學會(TAAI:Taiwanese Association for Artificial Intelligence)以 及國際電腦對局協會(ICGA:International Computer Games Association)列為正式的 比賽項目之一。. 1. http://www.gamesofa.com/mj/ 2.

(10) 1.2 研究目的 麻將可謂本國的國粹,是中華民族的傳統技藝,原稱作「麻雀」;麻將自中 國流傳至各國,並且隨著各國、各地的風俗民情漸漸地在規則上有所變化。台灣 的麻將是民國初年時傳入,當時流傳的是廣東十三張,而後才演變成現今的台灣 的十六張,規則和台數計算皆已和廣東十三張不同,大多數的台灣人會打的都以 台灣十六張為基準。 台灣麻將是由一百四十四張牌所組成的策略遊戲,牌桌上的四位玩家要依靠 自己手上的手牌,以及對弈中其他玩家打出的牌或吃、碰、槓的動作來判斷目前 局勢,因此能夠取得資訊相對其他對弈遊戲來的少許多,而不容易使用搜尋方式 來判斷目前做哪一動作為最佳,除了每巡可獲得的牌存在機率性問題外,每巡也 可能因為其他家碰、槓的動作而輪不到自己,使得自己牌面無法有變化;麻將也 難以像西洋棋等有固定中盤的遊戲預期何時遊戲會達到終局,由於這些錯綜複雜 又不穩定的因素,使得人工智慧在麻將上發展較為緩慢。 此研究目的就是希望能對麻將做更深入的探討,嘗試透過一些人類玩家的經 驗與技巧,開發出一套具有能和人類玩家競爭的麻將電腦程式,探討現存的、尚 未有良好解決方式的麻將問題,藉由各個實驗來比較不同策略的效果,找出一套 較佳的打牌策略、計算機率方式,符合人類打牌方式,且不只是針對於麻將,希 望更可廣泛到讓其他有機率成分遊戲也可以參考的策略,藉此讓對麻將有興趣或 想進入人工智慧這領域的人可以輕鬆地理解、學習,在未來可以加入自己的想法、 3.

(11) 改進演算法或是改良目前的策略等方式,讓麻將程式的打牌實力更進一層。 共一百四十四張牌的麻將,是屬於不完全資訊有機率性遊戲,遊戲中玩家間 無法得知互相的資訊;台灣麻將此遊戲主要的目的是在於將手牌湊齊五組一搭或 是其他特殊牌型以達到胡牌。在本文中, 「組」是指三張相同或三張連續的牌形成 一組,如圖 2, 「搭」是指兩張相同牌形成一搭,或是只缺一張就能形成的組也稱 一搭,另外兩張相同的牌也可以稱為「眼」 ,一般達到胡牌時的搭稱之,如圖 3, 但是胡牌的搭必是兩張相同的牌組成,如圖 4 的眼就是兩張五萬。 暗棋也是屬於不完全資訊有機率性遊戲,但和麻將不同的是,雙方玩家知道 的資訊是相同的,也同時都不知道場面上的暗子為何,過去許多相關的論文都有 在探討關於暗棋中的暗子問題,希望能在翻開暗子時可得到較高的期望值,繼而 影響盤面的局勢。. 圖 2 組. 圖 3 搭. 4.

(12) 圖 4 胡牌範例. 可是在麻將遊戲中,我們無法得知對方手中有什麼牌、湊齊了那些組合,唯 一可得的資訊,便是對方丟出的牌和吃、碰、槓出來的牌,因此要如何透過這些 情報來猜測對方要的牌、不要的牌變得很重要;如果能順利猜中部分,自己胡牌 機率便會大增,同時也可降低放槍給其他玩家胡牌的機率;另外麻將和其他對弈 遊戲的不同還有計算分數的差別,大多數的遊戲都只分勝負,最後以勝的場數多 寡來判定名次,麻將中雖然也是要勝的場數多為佳,但是最後卻是以台數計算的 分數來判定。因此要一邊設法取得更多台數,另一邊要盡量避免放槍給其他玩家, 才不會降低自己好不容易累積的分數;如何決定攻守的平衡,讓自己既可以獲得 分數,又不讓其他玩家從自己這裡奪得分數,成了重要的議題。 為了解決上述的各個問題,在實驗中採用了貝氏網路(Bayesian network) ,在 遊戲進行中做訓練,取得對方可能需求那些牌的機率大、又那些牌需要的機率較 小,這些在麻將遊戲中都是屬於非常重要的資訊,若是可以透過貝氏網路的訓練, 完整的知道那些牌對方要的機率大或小,都能成為輔助我們在做決策時重要的參 考資料,透過這些資料,便可讓我們降低放槍率,更可以使得贏率大大提升。. 5.

(13) 1.3 論文架構 本論文分成六個章節,第一章首先介紹電腦麻將的發展背景、研究動機以及 研究目的。第二章開始會先介紹台灣麻將的特性、簡單介紹世界各地的麻將以及 電腦麻將過去發展狀況,再介紹本論文沿續發展的ThousandWind程式使用的技術、 打牌策略,接著說明TaKe程式強化的部分。第三章則是先介紹本論文主要使用到 的演算法—貝氏信賴網路。第四章是程式實作方式,先是延續上一章節的貝氏網 路,說明本論文中使用的貝氏網路架構為何,再提如何使用貝氏網路來影響捨牌 決策等。第五章為實驗與成果,包括自己程式的內部測試及比賽紀錄等進行分析。 最後第六章是結論以及未來發展的探討。. 6.

(14) 麻將介紹 2.1 台灣麻將介紹 麻將是源自中國的策略型遊戲,遊戲人數以四人居多,取牌張數因各地而有 所不同,如香港及日本是取十三張,而台灣麻將因取牌十六張,故亦稱台灣十六 張麻將,遊戲需四人才能進行。各地、各國皆有自行發展出來的規則,像是台灣 麻將有些地區有花牌,有些地區無花牌;除了有無花牌的不同,計算分數也是因 各地而異。 台灣麻將的特性就是規則簡單,計算勝負、分數的方式簡單,重視胡牌,因 此容易上手,目前 TAAI、TCGA 及 ICGA 電腦對局比賽中的麻將電腦對局就是依 照台灣麻將的規則,但是為了時間控管而多加不可連莊的規則,每一局無論是否 有人胡牌或流局,皆由下一家當莊家。 遊戲進行時每位玩家會輪流當莊家,由莊家擲骰子決定開門位置。從莊家開 始依座位順序從開門位置取兩敦牌,一敦為兩張,每位玩家皆取四敦後,如有花 牌要替換同樣從莊家開始依序補牌,待所有玩家補好牌後,莊家再取一張牌,最 終莊家手中有十七張牌,其餘玩家手中各有十六張牌;首先會由莊家開始捨牌, 之後看是否有玩家要吃、碰、槓牌,若無則由下一家摸牌、捨牌。 麻將牌的花色分別為「萬」 、 「筒」 、 「條」 、風牌及三元牌,前三種各有一到九 的數字,如「一萬」、「二萬」等,風牌則分「東」、「南」、「西」、「北」四種風, 三元牌則是「中」、「發」、「白」三種,也有人習慣在前面加上各自顏色而稱「紅 7.

(15) 中」 、 「青發」 、 「白板」 ,所有牌各四張,共一百三十六張,若再加上八張花牌則共 一百四十四張。. 圖 5 花牌. 每一巡目輪到的玩家會從牌堆中摸一張牌,並捨出一張牌,捨出的這張牌可 以被其他玩家「碰」 、 「槓」或被下家「吃」 ,其中三張相同的牌為「刻子」稱為碰 牌,四張相同為「槓」 ,三張連續的牌為「順子」稱為吃牌,這三種的可算是一「搭」 ; 若有其他玩家「碰」或「槓」 ,則下一巡目就從碰的玩家開始,否則就依座位順序 繼續進行。 以下方圖 6 為例,Player1 捨了五條,此時下家 Player2 手中有四條與六條可 以「吃」 ,而對家 Player3 手中有兩張五條可以「碰」 ,因碰的動作優先權高於吃, 故此巡由 Player3「碰」 ,下一巡從 Player3 開始;假設下一巡 Player3 選擇捨三萬, 因 Player4 手中有三張三萬可以「槓」。 「槓」又分「明槓」與「暗槓」 ,所謂的明槓就如同上述例子中 Player4 的動 作,所有玩家皆可知道場上三萬皆已出現;而暗槓則是玩家自己摸到四張相同的 8.

(16) 牌,可以喊暗槓,將四張牌以牌面朝下方式覆蓋,其餘玩家不知被槓的牌為何, 暗槓後該玩家可以再於牌推中摸一張牌。. Player4. 捨牌. 碰 Player1. Player3. 吃. Player2 圖 6 遊戲進行範例. 所有玩家皆以達到五組加上一眼,或形成大、小特殊牌型為目標,只要有一 位玩家達成目標,及該玩家「胡牌」或「自摸」 ,則此局結束。其中胡牌是指當自 己以外的玩家捨出的牌,剛好可讓自身的牌形成胡牌的牌型,無論捨牌玩家是上 家、下家還是對家皆可「胡牌」 ;當自己還剩一張可達到胡牌時,輪到自己摸牌時 摸進尚缺的牌,稱為「自摸」。 每局結束時會計算胡牌的玩家得分,若無特殊牌型且是其他家放槍而胡牌, 則勝方的得分為底加台數,或是玩家自摸則乘以三倍,若勝方正好是莊家則可再 9.

(17) 加一台;反之,放槍的玩家則輸掉底加台數的分數,其他玩家不須扣分,若勝方 為自摸,則另外三家皆須扣底加台數的分數,若勝方玩家為莊家,同樣需再扣一 台,如表 1 因目前電腦對局無連莊的機制,故不詳述介紹連莊計算方式。各種牌 型可獲得的台數可參考附錄,每一巡每位玩家限時 3 秒出手。. 勝方. 敗方. 非莊家胡非莊家. 底+台數. -(底+台數). 非莊家胡莊家. 底+台數+1. -(底+台數+1). 非莊家自摸非莊家. (底+台數)×3+1. -(底+台數). 非莊家自摸莊家 莊家自摸. -(底+台數+1) (底+台數+1)×3. -(底+台數+1). 表 1 分數計算. 目前 TCGA、TAAI、ICGA 的比賽分數的採計皆相同,基本底為 1000 分,每 一台再加 500 分。比賽場次為 192 局,這是為了讓四位玩家彼此當過互相的上、 下家,因此四位玩家共可排出六種座位排法,且麻將一次對戰會進行「一將」 ,及 十六局的比賽,故最後六乘以十六得九十六局,進行兩次故共 192 局。並且為求 公平,所有玩家會輪流拿到相同的起始手牌,每局無論是否有玩家胡牌,皆會進 入下一局,由下位玩家當莊家,沒有連莊;比賽結果為計算所有局數的總分,下 圖為比賽平台。. 10.

(18) 圖 7 電腦對局平台. 2.2 世界各地的麻將 麻將由中國緣起,除了中國各地跟著風俗民情而各地規則有所不同外,在世 界各國也發展出不同規則;例如中國境內就有香港麻將、上海麻將、北京麻將等 等,而其他各國的如較著名的日本麻將,除了主要玩法的四人麻將外,還衍生出 三人麻將,另外還有美國麻將、歐洲麻將等;在全球各地皆有舉辦屬於各地的麻 將大賽,例如由世界競賽管理有限公司於 2007 年起在澳門舉辦的世界麻將大賽, 聚集各國麻將高手依照國際麻將的規則一較高下,還有由歐洲麻將協會舉辦的歐 洲錦標賽,最近的一次為於 2014 年在法國舉辦,個人冠軍為日本人鈴木芳洋 (Suzuki Yoshihiro),亞軍為德國人 Michael Zahradnik,團體賽則由歐日聯隊奪得冠 軍。 在 17 世紀時英國一名中國專家 William Henry Wilkinson 曾撰寫一篇關於中 國麻將的文章,當時他使用 ma chioh,即「麻雀」的音譯,是之後才漸漸演變成 11.

(19) mahjong,即「麻將」 。直到 1920 年左右麻將才開始推廣到西方國家,當時一名美 國商人 Joesph Park Babcock 撰寫並出版的 Rules of Mahjong,是最早在美國出 現的一本描述麻將規則的書,在這本書中,Babcock 將原在中國麻將的規則簡單 化,並且帶動了美國玩起麻將的熱潮,當時第一家在美國賣起麻將的公司是 Abercrombie & Fitch;之後又流傳到了歐洲各國,在歐洲各國貴族間引發了流 行。. 圖 8 rules of Mahjong2. 就在這段期間,發展出了許多不同版本的麻將規則,在 1930 年代開始,將原 本 Babcock 版的規則做了許多調整、改訂規則,其中現在的「美國麻將」規則就 是由當時演變成而來;於 1937 年在美國成立了 NMJL(Nationl Mah Jongg League), 將美國麻將統一標準化,美國麻將第一本規則手冊為 Maajh:The American Version of the Ancient Chinese Game。近年,美國還成立了 AMJA(American Mah Jongg Association)的麻將組織。. 2. http://www.sloperama.com/cctheory/all.htm 12.

(20) 圖 9 NMJL 官網上的外國人打麻將圖3. 除中國外,日本可以說是全世界最熱愛打麻將的國家,日本國內也有專業的 麻將比賽;也有不少以麻將作為題材的日本漫畫、動畫,以及電子麻將、網路麻 將平台等,引發青少年對麻將的興趣,使得麻將在日本不僅僅是中、老年人的消 遣活動,在比賽中也可經常看到年輕人出賽。於 1999 年 4 月在日本千葉縣,建立 了日本麻將博物館,館內收藏了來自世界各地的麻將牌、用具、書籍等和麻將相 關的物品,推廣、保存麻將文化。. 圖 10 位於千葉縣的麻將博物館4. 3 4. NMJL 官網(https://www.nationalmahjonggleague.org/) http://www.chiba-web.com/chibahaku/72/ 13.

(21) 目前世界競技麻將規則主要是分兩種,其一為中國體育總局於 1998 年制訂 的國標麻將,又稱「中國麻將競賽規則」 ,另一為由日本所制定的日本麻將;世界 麻將比賽,出手時間多為制定為 10 秒內。. 圖 11 世界麻將組織的 logo. 「中國麻將競賽規則」[9]使用的牌共 144 張,含 8 張花牌,手牌為 13 張, 如果有一人以上同時表示胡牌,則依照放槍玩家的逆時針方向,順序最近者為胡 牌者;基本胡牌牌型為四組一眼,另有特殊牌型:七搭,七個搭皆是對子、將牌, 以及十三么和全不靠等,各個不同難度的胡牌牌型,以及各個的分值見附錄 11, 分值可視為台灣麻將的台數。 胡牌時除了要符合胡牌牌型外,整副牌的分值總合最少 8 分;胡牌的分數可 分成三部分,第一個是底分,指的是胡牌後,沒有胡牌的玩家必須向胡牌的玩家 所支付的分數,分值為 8 分;第二個是基本分,指的是胡牌的牌型所有的類型的 分值總合;第三是罰分,即選手在比賽中犯規時被裁判所判罰的分數,在每局或 每將結束時結清或扣除。分數計算方式分成自摸以及點和兩種,所謂點和是指有 人放槍而胡牌;自摸胡牌可得:(底分+基本分)× 3,其中 3 指的是由未胡牌的三 14.

(22) 方支付這個分數;點和則可得:底分× 3 + 基本分 × 1,同樣的,3 指的是由未胡 牌的三方支付底分,後面的 1 是由放槍的玩家來支付。 另外,根據世界麻將組織頒布的國際麻將競賽規則,麻將選手在比賽時所獲 得的分數、名次為依據,進行品級認定,類似於象棋棋士的段位,其中九品為最 初等級,一品為最高等級。 日本麻將主要是不使用花牌,共 136 張牌的麻將牌,每位玩家手牌為 13 張, 在有些地區會有多三張紅牌,分他們的花色別是紅五條、紅五萬、紅五筒,另外 還有若干個用來記錄點數的點棒,遊戲結束時,由擁有最多點棒的玩家獲勝。日 本麻將在遊戲前面洗牌、取牌的動作和台灣麻將相同,遊戲中同樣有吃、碰、槓、 摸牌及捨牌的動作及順序;和台灣麻將最大的不同是,日本麻將的胡牌一定要擁 有一翻以上的翻數,不能只有單純的 4 組 1 眼就可胡牌,這裡指的的翻數可視為 台灣麻將中的台數。. 圖 12 點棒5. 麻雀の雀龍(http://www.mj-dragon.com/). 5. 15.

(23) 除了手牌要有一定的翻數外,在一些特定情況下,玩家的胡牌會被受限制, 僅限於可以自摸胡牌;例如,當玩家的捨牌被其他玩家吃、碰、槓時;以及有玩 家過水時,例如當玩家已經聽牌,但尚未立直時,故意不胡其他玩家放槍的牌時, 或是,在玩家立直後,同樣故意不胡其他玩家放槍的牌,或打出自摸牌;在這三 種情形下,在日本麻將稱為振聽。前面提到的立直,指的是聽牌的宣言,在宣告 立直後,就不可再改動手牌,並且手牌要是門清、手中要擁有 1000 點的點棒,用 來支付立直宣告用,且牌推中可摸得牌大於四張的狀況下,才可以宣告立直。 每局開始,在所有玩家取得 13 張牌、莊家取 14 張牌後,在開門位置右方的 7 敦 14 張牌組成「王牌」,王牌是開出嶺吃牌和翻出加分指示牌用的;開門位置 最右方的兩敦即為「嶺吃牌」 ,是開槓時補牌的牌,因此日本麻將開槓次數有限, 一局中最多只能開槓四次,若超過四次,則形成「四槓流局」 ;開門位置右方第三 墩的上方牌會被翻開,此張牌用來指示遊戲每局的加分指示牌,又稱作寶牌;下 圖為王牌示意圖,最左方為開門位置,圖中左到右分別是兩敦嶺吃牌,五敦加分 牌指示牌,接著後面的牌皆為遊戲中可以摸的牌。. 16.

(24) 槓加分指示牌. 寶牌. 加分指示牌. 可摸的牌. 王牌 嶺吃牌. 里加分牌 圖 13 王牌示意圖. 加分指示牌可分三種情形來看,首先如果加分指示牌是數字牌,則同花色的 下一張牌為加分牌;如果加分指示牌是四風牌,則依照東、南、西、北的順序決 定加分牌,其中加分指示牌是北風,則加分牌為東風;最後如果加分指示牌是三 元牌,則是按照發、中、白的順序決定加分牌,同四風牌,如果加分指示牌是白 板,則加分牌就是青發,下面圖 14 為其一範例表示加分指示牌,及其指示的加 分牌。加分牌的種類也可分為三種;第一種是「表加分牌」 ,由每局開局時在王牌 中翻出的加分指示牌所指定的加分牌,指示方式如前述;第二種是「槓加分牌」 , 這是當遊戲進行中,如有玩家開槓,由嶺吃牌中補進牌後,第一種的表加分指示 牌右側再翻開一張加分指示牌,此張加分指示牌依照前述方式所指示的牌即為槓 加分牌;第三種是「里加分牌」 ,里加分指示牌是在前兩種加分指示牌同敦的下張 牌,該牌所指示的牌即為里加分牌,這種指示牌只有在有玩家立直胡牌時才翻開 來看。. 17.

(25) 加分牌 為. 加分指示牌. 圖 14 加分指示牌及其加分牌範例. 在胡牌時,當手中有多張加分牌時,可以累計加分,若翻開出的加分指示牌 為相同的牌時,手中的加分牌也可累計計算,但是由加分牌得到的翻數,僅能作 為胡牌後的後計翻,所以當手牌中只有加分牌的翻數也不能胡牌。 日本麻將計算分數時,大約可分成三部分;第一個是「符」 ,主要是根據手牌 狀況來計算,和台灣麻將的基本底類似,日本麻將也有所謂的副底,為 20 符,另 外再根據聽牌、雀頭等狀況在累加,得到總共的符;第二個是翻數,類似台灣麻 將的台數計算方式,根據手牌中的特殊牌型決定翻數,同樣是可以累加,前述提 到的加分牌的翻數,同樣在這裡累加;第三個基本點,這裡主要是看胡牌的玩家 是莊家亦或閒家,以及是自摸還是是其他玩家放槍而胡牌來決定。 值得一提的是,日本麻將自摸得分是由其他三位玩家共同分擔,即無論是自 摸還是胡其他玩家放槍的牌,胡牌的玩家獲得的得分皆是相同,故而不會有台灣 麻將因為自摸而翻盤的狀況發生;另外日本麻將在胡牌上的限制,打牌風格也會 18.

(26) 較趨於保守。. 2.3 相關文獻探討及程式介紹 由國立台灣師範大學資訊工程所的陳新颺,在 2013 年撰寫的「電腦麻將程 式 ThousandWind 的設計與實作」論文[18],以及開發出的麻將程式 ThousandWind, 在 2012 年的 TCGA 與 TAAI 分別得到銅牌和銀牌,在 2013 年的 TCGA 與 ICGA 也獲得了銀牌的榮耀,而於 TAAI 2013、TCGA 2014 皆榮獲金牌,擁有非常強的 實力;本研究中便是沿用了麻將程式 ThousandWind 做改良,撰寫成麻將程式 TaKe, 並在 2013 年 TAAI 獲得銅牌。. 圖 15 TAAI 2013 銅牌. 電腦麻將程式 ThousandWind 中,其主要的做法是利用牌型的分析來做拆解; 在同一花色中,拆分出它能形成的各種組、搭或孤張的搭配,根據每種搭配方式, 以及在這種搭配下,期望有哪些牌可以摸進或吃、碰進來的直接有效牌,和摸進 的間接有效牌能越接近胡牌的牌型,權重就越高。所謂間接有效牌是指摸進來的 牌,雖然還不能和原先手牌中的牌形成一組,但是只要再進一張,不管是透過甚 麼形式,就可以形成有效的一組或一搭。為了快速的找到適當的組合搭配,事先 19.

(27) 建好了預定表,預定表內包含了牌型的組數、搭數以及直接、間接有效牌數,在 遊戲進行中就可以節省這部分的計算時間,轉而做其他計算動作。以及以模擬的 方式,找出當下的牌型,是否有機會在剩下的巡迴數組成大、小特殊牌型,如有 則保留那一部分的牌,追求胡牌時可獲得更多的分數,下圖為 ThousandWind 程 式執行畫面,TaKe 程式的研發也延續使用。. 圖 16 程式執行畫面. 本研究中使用的貝氏信賴網路,主要是參考在 2009 年由國立台灣師範 大學資訊工程所的黃信翰撰寫的「吹牛骰子之人工智慧研究」[19]以及 2011 年由 國立台灣師範大學資訊工程所的唐心皓撰寫的「吹牛骰子之人工智慧改良」[16] 兩篇;這兩篇的網路結構中共有五個節點,每一節點都存有一紀錄及相關的機率 表格,供於在每一回合能影響玩家的參數及所需的決策;節點之間若有一條有向 線存在,表示這兩點間有相依性存在;除了遊戲進行中的貝氏網路外,開局時有 另一份歷史資訊,保存在另一個貝氏網路中,提供開局時做判斷,而遊戲進行中 20.

(28) 由貝氏網路計算後所得的結果,則是用動態的方式來調整對它的信賴程度,越到 後局越容易採信,一旦決定採信,再使用由貝氏網路訓練出的機率,得出一組假 想的對方的底牌,利用這副牌做出適當的決策。. 2.4 電腦麻將程式的設計方向 電腦麻將程式的設計根據麻將的打牌方式主要分為三個部分,首先是以胡牌 最優先的捨牌決策,第二個是避免放槍的決策,第三個是盡量取得特殊牌型來獲 得更多台數的決策,最後還需合併三部分,決定採用何者。 假若暗棋中到底目前是要走子還是翻子是大問題,則麻將的問題就是到底要 是避免放槍來捨牌還是以胡牌為優先考量來捨牌;在 ThousandWind 中,除了以 最快速度取得胡牌的基本捨牌方式外,還加入了台數考量成分在內,以及簡單的 動態權重來考量那些牌容易被其他玩家打出,又那些牌被其他玩家需求的機率較 大。 ThousandWind 的動態權重是在遊戲進行中,蒐集其他玩家打出的牌的次數來 做依據,例如下面表 2 可看出萬子比條子更常打出,以萬子為例一萬、九萬比五 萬更常打出,這些統計再細分成各家的打牌傾向,再經過幾局的統計後,透過這 些訊息,將我們原先捨牌策略做些變動,提高進牌率;然而這些資訊都是在遊戲 進行中才蒐集的,因此要經過多局後才能看出優勢,如果能夠在前幾局就先用些 技巧彌補無法使用這些資訊的劣勢,則到了後面開始使用蒐集資料的局盤,就更 21.

(29) 可容易地將分數差距拉大。 一. 二. 三. 四. 五. 六. 七. 八. 九. 萬. 196. 114. 105. 58. 56. 134. 73. 88. 186. 筒. 119. 98. 92. 59. 30. 91. 104. 47. 163. 條. 78. 93. 67. 52. 77. 64. 82. 111. 114. 東. 南. 西. 北. 中. 發. 白. 286. 190. 266. 285. 214. 306. 193. 字牌. 表 2 ThousandWind 在 2012 比賽蒐集的捨牌傾向. 如何避免放槍在麻將中也是個重要的議題,若在自己湊好牌型、胡牌前,就 放槍給其他玩家,反而造成了一筆損失;ThousandWind 中是利用推算哪張牌比較 容易胡牌;即是說,可以和場面尚未出現、剩餘的牌組合數量越多的牌,表示這 張牌越容易被胡牌,下面以圖 17 來舉例說明;然而這種計算方式不夠精準,麻 將中,有時少出現的牌,很可能只是被其他家放在手牌內,且已經是組好組合的, 真正要等的牌反而是已出現過的;因此在避免放槍這裡,我們每一巡都去紀錄玩 家的動作,配合人類玩家的經驗法則找出規律,再透過貝氏信賴網路計算出其他 對手可能要的牌。 如同前面所提,避免放槍的捨牌方式和要達到胡牌的捨牌方式,是互相衝突 的,所以和 ThousandWind 的策略相同,是到了特定的巡目,我們手中的牌離胡 牌還有一定差距時,才開始採用這種方式來輔助捨牌,降低放槍的機率,而且除 非我們的手牌狀況很差,巡目又到了很後面,此局遊戲快要結束時,我們才做拆 22.

(30) 組的動作,不然一般狀況下盡可能不拆組合。. 未出現的牌. 可捨的候選牌. 可成的搭配組合:. 因為可搭組合數較少故選擇. 圖 17 決定避免放槍的範例. 麻將因為決定勝負的關鍵是台數,所以想要獲得更多分數,除了設法增加胡 牌次數外,還有就是必須盡可能湊出特殊牌型。增加每次胡牌時可獲得的分數, 23.

(31) 透過特殊牌型增加台數的方式,比起單純多次胡牌更容易拿到更多的分數,可是 要組到特殊牌型並不容易;特殊牌型有分整副牌、部分及最難達成的運氣型,部 分特殊牌型例如「小三元」 ,胡牌的玩家牌中要有「中」 、 「發」 、 「白」其中形成兩 組加上一搭,如圖 18,可獲得四台;滿足整副牌的特殊牌型的,例如「清一色」 , 整副牌皆由「萬」 、 「筒」或「條」其中一種花色組成,如圖 19,可獲得八台;靠 運氣成分達成的特殊牌型如「天胡」 ,第一輪,及前四張摸牌內皆無人有吃、碰、 槓等動作下胡牌,可得十六台,更多詳細的牌型詳見附錄 10。. 圖 18 小三元. 圖 19 清一色. 撇開靠運氣而成的特殊牌型,在ThousandWind中對特殊牌型的策略是每次在 決策前,先去檢查手牌是否已經存在著小牌型;如果有則先將這些先固定起來, 24.

(32) 避免在後面的決策時打出去,完成比對後,再由一般的決策來決定捨牌,在這部 分的處理,本研究仍保留這種方法。 遊戲中,雖然我們都希望能夠獲得越高分數越好,希望自己能求得胡牌,但 是有時運氣不佳,手牌狀況不好,或發現可能要的牌和其他玩家重複了,但是已 經來不及換牌,這時一般都單純採取避免放槍的動作;但是,因為麻將不同於其 他遊戲的計算分數方式,我們有時可以採取特殊的動作。我們應該要設法避免分 數最高的玩家再獲得更高的分數,或是目前任何分數比自己高的玩家,我們可以 透過故意放槍給總分比自己低的玩家,使得分數最高的玩家無法再得到更多分數, 我們才有機會反超。 故意放槍也是門技術,首先如果自己還是有機會胡牌的狀況下,當然還是以 胡牌為最優先,一旦認為自己胡牌機率小,則透過貝氏信賴網路計算出其他玩家 需求的牌的機率,不捨出目前最高分數玩家須求機率高的牌,先去尋找其他三家 需求皆小的牌來捨。如果沒有,則選擇可以讓自己胡牌機率最大的牌來捨牌,透 過這種方式來操作玩家們的分數,盡可能的不讓分數高的玩家獲得更多分數,同 時也不放棄胡牌的機會,以下圖 20為例。. 25.

(33) 可以捨: 第三名. 需求 第一名. 需求. 第二名. 需求 第四名. 第一、二名需要七萬和四筒的機 率大,故選擇捨 第三名 圖 20 故意放槍範例. 26.

(34) 貝氏信賴網路 貝氏網路(Bayesian network)或貝氏信賴網路(Bayesian belief network), 是個有向非循環圖形模型(directed acyclic graphical model),是一種機率圖型模型, 其每一節點都有一個機率表,兩個節點之間的箭頭代表此兩個節點是具有因果關 係或是非條件獨立的,以顯示出各個因素彼此間的互動關係,再藉由重複觀測對 網路進行訓練,之後便可推測、計算出各因素間的相互影響的概略機率。 下圖 21 是個簡易的貝氏網路結構圖[21],在這網路中存在兩個伺服器,這兩 伺服器會傳送封包到使用者端(User) ,其中第二個伺服器(Server2)的封包傳送 成功率會與第一個伺服器(Server1)傳送成功與否有關,並且傳送封包狀態只分 成功(T)或者失敗(F)兩種;此貝氏網路的聯合機率分配可以表示成: P(U, 𝑆1 , 𝑆2 ) = P(U|𝑆1 𝑆2 , ) × P(𝑆2 |𝑆1 ) × P(𝑆1 ). 圖 21 貝氏信賴網路範例[21]. 27.

(35) 在這網路模型下,我們可以提出諸多問題,例如: 「假設已知使用者端成功接 受到封包,求第一個伺服器成功發送封包的機率?」這類問題可透過貝氏規則找出 它的發生機率。 貝氏網路計算是用來呈現事件之間的關係,而貝氏規則(Bayesian rule)則是 可以透過貝氏網路,找出已經確定的某一事件我們稱它為 B,並在 B 事件成立 的前提下,計算出另一事件發生的機率,這事件我們稱它為 A,其中 A 事件和 B 事件兩者不相互排斥;整個事件簡單來說就是「在 B 事件已經成立的前提下, A 事件發生的機率為何」,用條件機率表示如下: 𝑃(𝐴|𝐵) =. 𝑃(𝐴 ∩ 𝐵) 𝑃(𝐵). 其中𝑃(𝐴 ∩ 𝐵)表示 A 和 B 同時發生的機率,稱為聯合機率,而𝑃(𝐵)表示 B 事件發生的機率。 因為聯合機率具有交換性,因此 𝑃(𝐴 ∩ 𝐵) = 𝑃(𝐵 ∩ 𝐴) 又 𝑃(𝐵 ∩ 𝐴) = 𝑃(𝐵|𝐴) × 𝑃(𝐴) 故 𝑃(𝐴 ∩ 𝐵) = 𝑃(𝐵|𝐴) × 𝑃(𝐴) 所以帶入條件機率公式中可得: 𝑃(𝐴|B) =. 𝑃(𝐵|𝐴) × 𝑃(𝐴) 𝑃(𝐵). 此公式即為貝氏規則。 以前述問題為例,我們透過貝氏規則找出其解,解法如下。 28.

(36) 因為已知使用者端成功接受到封包,即𝑈 = 𝑇;又要求第一個伺服器成功發 送封包的機率,即𝑆1 = T,帶入上面公式就得𝑃(𝑆1 = 𝑇|𝑈 = 𝑇) =. 𝑃(𝑆1 =𝑇,𝑈=𝑇) 𝑃(𝑈=𝑇). 。. 其中𝑃(𝑆1 = 𝑇, 𝑈 = 𝑇)表示同時滿足使用者端成功接受到封包和第一個伺服 器成功發送封包的機率,共有𝑈 = 𝑇, 𝑆1 = 𝑇, 𝑆2 = 𝐹和𝑈 = 𝑇, 𝑆1 = 𝑇, 𝑆2 = 𝑇兩種狀 況;𝑃(𝑈 = 𝑇)則表示滿足使用者端成功接受到封包的機率,共有四種狀況,下面 以𝑈、𝑆1及𝑆2 的順序表示三者狀態,分別是𝑇𝑇𝑇、𝑇𝑇𝐹、𝑇𝐹𝑇和𝑇𝐹𝐹;帶入公式後 得:. 𝑃(𝑆1 = 𝑇|𝑈 = 𝑇) = =. 𝑃(𝑆1 = 𝑇, 𝑈 = 𝑇) 𝑃(𝑈 = 𝑇). (0.4 × 0.3 × 1)𝑈=𝑇,𝑆1=𝑇,𝑆2=𝐹 + (0.4 × 0.7 × 1)𝑈=𝑇,𝑆1=𝑇,𝑆2=𝑇 (0.4 × 0.3 × 1) 𝑇𝑇𝑇 + (0.4 × 0.7 × 1) 𝑇𝑇𝐹 + (0.6 × 0.3 × 1) 𝑇𝐹𝑇 + 0 𝑇𝐹𝐹 ≅68.96%. 29.

(37) 程式實作方式 4.1 人類高手打牌策略 目前多數的麻將程式在避免放槍的部分著墨較少,一方面台灣麻將多以攻擊 為主,加上麻將不明確的資訊比其他遊戲種類來的多,難以防禦。但是實際上人 類高手們在打麻將時,是會去計算其他玩家可能要甚麼牌,避免自己打出這些牌 給對手胡牌,或是讓自己在最小損益下選擇較危險的牌;在本論文中這就會運用 到些高手們的特殊技巧,下面將會一一介紹。 麻將中「萬、筒、條」三個花色的牌分別有一到九的數字,相近的數字可以 形成組、搭,但是當手中有差距二以上的數字就很困擾到底要如何取捨。在麻將 高手口中有著「同線牌」這經常使用的術語, 「同線牌」是指差距正好為二的一組 數字,分別是:「一、四、七」、「二、五、八」及「三、六、九」 ,如下圖;同線 牌內的數字看似各自分散,無法湊成組搭,但是在做捨牌時卻是很好用的判斷依 據。. 圖 22 同線牌範例 30.

(38) 如若手牌中萬花色的牌只有「一萬、四萬、七萬」 ,因一萬是邊張牌,能湊的 組、搭較少,故先捨一萬;同樣的當手牌只有「三萬、六萬、九萬」時,同樣捨 邊張牌九萬;然而當手牌中有「二萬、五萬、八萬」時,反而捨數字最中間的五 萬,尤其在早期時有孤張五時,高手們建議先捨五,因五雖然可以靠的牌多,但 同樣被其他玩家要的可能性也越高。 同線牌除了自己手中擁有時可以決定捨牌外,也可以用來推測其他玩家可能要 的牌。在打牌過程中,時不時會遇到對手連續幾回打同樣花色的牌,這時有可能 對手想要吊牌,故意讓對手以為他不需要這花色的牌,實則在等他捨出花色的某 張牌。 在早期捨「五」,可能要「一、四」或「六、九」,可能要的組合則可以依對 手之前捨的牌來決定,在中後局時,則依同線牌原理來假設對手可能要的牌。同 線牌原理:先捨同線牌中數字小的再捨數字大的,則可能要大的牌數字加一及其 同線牌;反之,先捨同線牌中數字大的再捨數字小的,則可能要小的牌數字減一 及其同線牌。 舉例來說,A玩家先後分別捨了「三萬」和「六萬」 ,根據同線牌原理後捨大 牌數字加一即「七萬」和其同線牌「四萬」 ,不假設A玩家要「一萬」是因為一萬 距離六萬太遠;反之先後分別捨了「六萬」和「三萬」 ,根據同線牌原理後捨小牌 數字減一即「二萬」和其同線牌「五萬」,「八萬」太遠不假捨。 除同線牌原理外,當對手吃、碰後捨五,假設對手可能要「三、六」或「四、 31.

(39) 七」,可依照對手吃碰的組合來猜測對手可能會要哪個組合。 在終局時,有可能面臨因為組搭數多了要拆,或發現手牌不容易達到胡牌時, 可以跟著上家或莊家在此巡打的牌,倘若沒有可以跟打的牌時,則以目前場上已 經出現過的牌或其同線牌來捨牌,並且注意使否有人換牌,但是在現在電腦對局 平台的溝通介面中無法得知對手出的牌是否為此巡摸進的那張,故無法實作。. 4.2 貝氏信賴網路架構 麻將遊戲中,玩家每一巡大致上會有吃、碰、槓和摸其中之一的動作後,才 會決定此巡的捨牌,為了取得到有效組合,玩家的動作不會是沒有規律的,所以 我們可以透過觀察玩家的動作,來找出玩家可能需要的牌。以貝氏信賴網路來呈 現則是如下圖 23 表示:. 32.

(40) A:做吃、碰、摸的動作. B:決定捨牌, 尚缺某些牌. C:外面剩餘幾張時 可得的機率. D:吃、碰、摸後打哪張 吃後打哪張牌. 碰後打哪張牌. 摸後打哪張牌. 圖 23 麻將之貝氏網路架構. 此貝氏信賴網路主要是模擬除了自己外其他三位玩家的動作,在每一巡去紀 錄場面上的變化,根據這些變化的數據和已知的參數節點之間的相依性,計算出 在此巡後,每張牌對於這個玩家可能需求的機率。因為節點機率表較大,故每個 節點的機率表在後面分別闡述。 A:首先先判斷玩家在此巡是做吃、碰還是摸的動作,這裡的動作會引響我 們接著要使用哪種策略,在圖中雖然只以一個節點表示,但其實比較像是三個節 點,分別是吃、碰、摸,因只有其中一種可能,故機率表如下: 33.

(41) 摸. 機率. 碰. 機率. 吃. 機率. T. 1. T. 1. T. 1. F. 0. F. 0. F. 0. 表 3. 節點 A 的機率表. B:接著,如果該玩家沒有胡牌,則會決定一張牌捨牌,並且等著某些牌被其 他玩家打出時可吃、碰、槓或等下巡摸進,我們就是要設法計算出這些他等的牌 是哪幾張。在這個節點中,共有三個表格分別代表其他三位玩家可能要的牌的機 率,那些機率計算方式就是透過 A、C、D 三個已知節點的機率,再根據貝氏規則 計算出我們要的結果;因為玩家的動作可以直接判定,故 A 節點可以省略計算, 直接根據判定出的動作去找吃、碰或摸相對的機率表,計算公式如下: 𝑃(𝐶|𝐷) =. 𝑃(𝐶 ∩ 𝐷) 𝑃(𝐷|𝐶) × 𝑃(𝐶) = 𝑃(𝐷) 𝑃(𝐷). 除了自己外的每位玩家皆會有一表格,分別紀錄各個玩家需求的牌、需求的 機率以及在第幾巡時發現需要該牌,下表為一例: 一萬. 二萬. 三萬. …. 七條. 八條. 九條. 機率. 0. 0. 0.027605. …. 0.144833. 0. 0. 巡回數. 0. 0. 7. …. 5. 0. 0. 表 4 節點 B 之範例樣式. 表格只有紀錄萬、筒、條,是因為字牌只能根據場上出現次數來判斷要的可 能性,只能假設所有玩家要的機率皆相同,唯有場面上已出現三張才能確定不會. 34.

(42) 有玩家需要。 C:我們假設玩家不是隨機捨牌,並且沒有決策出錯的狀況下,則該玩家要的 牌定會在場面上還有剩餘張數,根據場面上可知的剩餘張數,我們事先用大量對 局統計出在剩餘 0 到 4 張下可獲得的機率,其機率表如下表 5: 從場面上可知的剩餘張數. 機率. 0. 0. 1. 0.240263. 2. 0.23424. 3. 0.265879. 4. 0.259618 表 5 節點 C 的機率表. D:唯一能得知玩家需求的牌,就是透過玩家的動作與捨牌傾向來找。在這 裡我們藉由人類玩家的經驗法則來輔助我們做判斷。首先是「吃」 ,看玩家吃了甚 麼牌後捨甚麼牌,如果兩個牌的數字關係相近,則此玩家可能要某張牌;例如, 吃八萬,形成七、八、九萬一組後,打五萬,則可能要六萬或九萬;再來是「碰」 , 因為碰不像吃一樣,同花色間的關係較高,所以無論碰了哪個數字,之後捨了同 花色的五,則可能對同花色的三、六、九或一、四、七有需求;最後是「摸」 ,如 果此巡動作是摸,則我們往前看一巡,看前巡該玩家捨了甚麼牌和此巡捨得牌是 35.

(43) 否同花色且數字是否是相距為三,如果符合條件,再看前巡捨牌和此巡捨牌是大 到小來捨,或是小到大來捨。若為前者的話小牌數字減一及其同線牌,若為後者 的話大牌數字加一及其同線牌,舉例說明,有一玩家前一巡捨了七萬,在這巡捨 了四萬,則該玩家可能要的牌是三萬和其同線牌的六萬,而九萬因為相距較遠就 不計算。 同線牌,指的是在麻將中常用到的規律,同線牌共分三組,分別為: 「一四七」 、 「二五八」 、 「三六九」 ;同線牌的用法很多,像前面所提的用來觀察其他玩家的捨 牌來推測可能要的牌就是其中一種,還有像是如果手牌中有一四七時,會優先捨 一等等。 在 D 節點中的根據吃、碰、摸的動作再捨牌的經驗法則來找出需求的牌的機 率,也是我們事先計算好,所以在遊戲進行時,我們只需針對每位玩家計算出屬 於他們各自的 B 節點。 計算吃後捨牌要甚麼牌的機率是使用一個二維陣列來表示,表格中 0 表示沒 有,樣子如下:. 36.

(44) 吃牌. 捨牌. 可能要的牌. 3. 7. 1. 4. 0. 4. 7. 3. 6. 0. 5. 8. 1. 4. 7. 5. 2. 3. 6. 9. 7. 4. 5. 8. 0. 8. 5. 6. 9. 0. 表 6 節點 D 之吃牌捨牌後可能要的牌. 其相對應的機率表則為: 吃牌. 捨牌. 可能要的牌的機率. 3. 7. 0.112132. 0.115473. 0. 4. 7. 0.187335. 0.033084. 0. 5. 8. 0.087608. 0.112265. 0.029531. 5. 2. 0.027605. 0.088621. 0.082285. 7. 4. 0.032548. 0.031887. 0. 8. 5. 0.040318. 0.019308. 0. 表 7 節點 D 之吃牌機率表. 碰後捨五則可能要甚麼牌的機率表如下: 37.

(45) 可能要. 1. 4. 7. 3. 6. 9. 0.13904. 0.217769. 0.144833. 0.179333. 0.18627. 0.132754. 的牌 機率. 表 8 節點 D 之碰牌機率表. 動作為摸時,則是比較前巡和此巡的捨牌,使用二維陣列來表示如下,其中 0 表示沒有,依照捨牌大到小再捨牌小到大的順序: 前 巡 此 巡 可能要的牌 捨牌 捨牌. 可能要的牌的機率. 7. 4. 3. 6. 0.01782. 0.01782. 4. 1. 3. 0. 0. 0. 8. 5. 4. 1. 0.093776. 0.093776. 5. 2. 1. 4. 0.017246. 0.017246. 9. 6. 5. 2. 0.134882. 0.134882. 6. 3. 2. 5. 0.015258. 0.015258. 1. 4. 5. 8. 0.064455. 0.107141. 4. 7. 8. 5. 0.023226. 0.029852. 2. 5. 6. 9. 0.043369. 0.061517. 5. 8. 9. 6. 0.028273. 0.038885. 3. 6. 7. 4. 0.019924. 0.025394. 6. 9. 7. 0. 0. 0. 表 9 節點 D 之兩巡捨牌之機率表. 動作為摸時我們只看前一巡和當下這一巡,而不去看更前面幾巡是有原因的, 38.

(46) 麻將因為每巡皆會獲得一張牌,這張牌可能可以和手中的多張牌做搭或做組,因 此換牌率是很高的,尤其在終局時特別明顯,前一巡還是屬安全的牌,到了這巡 就成了危險牌,所以在這裡我們就只針對最近的兩巡做判斷。 要得出 𝑃(𝐶|𝐷) 的結果除了上面各表格的資料外,還需知道 𝑃(𝐷|𝐶) 的值為 何,而 𝑃(𝐷|𝐶) 表示在外面剩餘幾張時,且同時此巡符合 D 節點預設中的動作以 及捨預設中的牌,符合在 D 節點中預設可能要的牌的機率;符合這些狀況的所有 牌的機率也是需要先計算好,同樣這裡使用大量對下得到我們需要的值。這次紀 錄是使用三維陣列,如同前面表 7、8 及 9 個別加上第三維,場外剩餘數量,以碰 後捨五則可能要甚麼牌為例子,表格如下,更完整的表格可參照附錄 6、附錄 7 與附錄 8。 要的牌 剩. 1. 4. 7. 3. 6. 9. 4. 0.1113. 0.152. 0.1363. 0.1575. 0.1649. 0.0968. 3. 0.01894. 0.038. 0.0207. 0.0236. 0.0348. 0.0209. 2. 0.0019. 0.0051. 0.0029. 0.0032. 0.0052. 0.0028. 1. 0.0002. 0.0001. 0.0004. 0.0002. 0.0007. 0.0001. 餘張數. 表 10 場上剩餘幾張時的碰牌機率表(部分). 39.

(47) 4.3 避免放槍的決策 從前面得到貝氏信賴網路事先學習、並建立好節點 C、D 的表格後,在遊戲 進行中根據每位玩家每一巡的動作與捨牌,依照貝氏信賴網路的計算,就可得到 B 節點的資訊。麻將遊戲每一巡的變化很大,經常上一巡需要的牌到了下一巡就 拿到或是拆掉這個組搭等各種情況;然而由貝氏信賴網路計算後的機率只是當下 此巡該玩家可能需要的,因此除了計算出要的機率外,我們還要再加上當下的回 合數做為判斷依據,以圖 24 為例,每位玩家的每張牌放槍的權重為如下: 放槍的權重=要的機率×該回合數. 40.

(48) 當前為第 6 巡 碰 捨牌. Player4. Player 4 碰三捨五,有可能是要 1、4、7、6、9 萬,其 中場上四萬剩餘 2 張,則可能要四萬的機率約為 0.0055,再乘以巡回數,最後四萬放槍的權重為 0.033. Player1. 吃 捨牌 Player3. Player 3 吃五捨八,有可能要 1、4、7 條,其中場上四 條剩餘 1 張,則可能要四條的機率約為 0.0617,再乘以 巡回數,最後四條放槍的權重為 0.3702. Player1. 捨牌. 上巡捨. Player2. Player 2 先捨三後捨六,有可能要 1、4 筒,其中場上四 筒剩餘 2 張,則可能要四筒的機率約為 0.0199,再乘以 巡回數,最後四筒放槍的權重為 0.1194 Player1 圖 24 計算放槍率範例 41.

(49) 本程式雖然主要是針對避免放槍,但是也盡量在不影響可達到胡牌的狀況下, 才改變捨牌策略,每次要捨牌都從第一張牌手牌開始依序搜尋,先假設該張捨棄 後,剩餘的牌能組出最佳組搭數,越接近胡牌狀態,及越接近五組加一搭者越佳; 找出所有捨棄後最接近胡牌狀態的牌後,再比較他們被其他玩家要的權重值。 每一巡除了根據貝氏信賴網路計算出玩家對於那些牌有需求外,還須注意到, 因為貝氏網路沒有對需求的牌可靠的牌做學習,所以如果只單看學習後的表格會 出現該張牌其實已無法形成組搭,即使場上還剩餘一張,只要有玩家的行為符合 需要該張牌,就會當作他需要;然而實際上無法形成組搭的牌,是不可能被需要 的,所以這種類型的牌就需要另外處理,並且在每位玩家需求的牌的表格中,該 牌的機率給予-100 的值;當字牌在場面上出現 3 張時,同樣給予-100 的值,在決 策捨牌時就會優先選擇這些牌。 在本程式 TaKe 持續研發前的 ThousandWind 程式,有每張捨牌後此副牌可得 到的權重,權重值越高者越容易達到胡牌,為方便區分在這裡我們稱它為胡牌權 重值,為了不讓程式的胡牌率降低太多,因此在決策捨牌時仍須考量到可達胡牌 的權重值;所以現下在決策捨牌時,我們同時擁有兩個影響捨牌方向的權重,分 別是胡牌與避免放槍的權重值。 組成胡牌權重值只要有三個分數,其一是間接有效分,指的是雖然不能和現 有的牌組成一組,但能形成一搭的牌,給予他 1 分;其二是直接有效分的碰牌, 指的就是可以和現有的手牌直接形成碰牌,給予 10 分;其三為直接有效分的吃 42.

(50) 牌,如同前面直接有效的碰牌,只是將碰牌改為吃牌,給予 5 分。這些分數再乘 上這些牌在場外剩餘張數,最後累加所有牌的分數,即可得到這副手牌的胡牌權 重值,下圖為計算胡牌權重值範例,手牌中萬子的為四萬、四萬、六萬,根據場 外剩餘的牌,得知其得分為 37 分。. 總分:4+3+10+15+1+2+2=37. 間接有效牌,剩餘 4 張 得分:4 × 1 = 4. 間接有效牌,剩餘 3 張 得分:3 × 1 = 3. 直接有效碰牌,剩餘 1 張 得分:1 × 10 = 10. 直接有效吃牌,剩餘 3 張 得分:3 × 5 = 15. 間接有效牌,剩餘 2 張 得分:2 × 1 = 2. 間接有效牌,剩餘 2 張 得分:2 × 1 = 2. 圖 25 胡牌權重值範例. 每位玩家的每張牌的放槍的權重值至多到達兩位數,且值越小表示越不容易 放槍,但是 ThousandWind 的胡牌權重值少則個位數,多則上千,且值越大表示 越易胡牌,因此兩者要比較非常不容易,如下方圖 26 表示,捨牌傾向於第四象 限,越右下的點,表示捨棄該牌同時滿足可快速胡牌及不易放槍兩優點;然兩者 範圍值相差甚遠,不好比較,故而將放槍的權重的範圍值,做個轉換使得範圍如 同胡牌權重值,成為避免放槍權重值。 另外,因為各家要的牌的權重皆不同,理論上應為各家的放槍權重各自做轉 43.

(51) 換,三家將轉換後的放槍權重加總後,再和胡牌權重值相比,但如此又可能造成 胡牌率大減;或者改為三家先將放槍權重加總,再做轉換和胡牌權重值比較;因 不確定哪一種方式更符合實際狀況,所以我們用實驗來比較兩種方式何者為優。. 放槍機率高. 放槍權重值. 易胡牌. 難胡牌 胡牌權重值 捨牌傾向. 放槍機率低. 圖 26 胡牌與放槍權重關係. 首先是各家的放槍權重各自做轉換,各自權重範圍如下表 11: 胡牌權重. 放槍權重. 上限. 1500. -11. 下限. 0. 60. 表 11 1:3 權重表. 放槍權重中有到負值是因每一巡玩家捨棄的牌會給予 -1 的權重,以及當這 張牌沒有可以形成組搭數時,也給予-1 的權重,再乘上該回的回合數就可達到負 44.

(52) 十幾的數字。 新的避免放槍權重值= 21.1267 × (60 − V),V值表示該牌放槍的權重。 此時新的避免放槍權重值,再加上胡牌權重值成為決策捨牌的依據,該值越 大表示可獲益的分數越高。 經過大量對下後得到的結果如下表: Player1. Player2. Player3. Player4. 胡牌次數. 29496. 29427. 29510. 29337. 放槍次數. 22895. 22696. 22887. 22984. 表 12 1:3 實驗結果. 接下來是各家的放槍權重先加總後,再做轉換,各自權重範圍如下表: 胡牌權重. 放槍權重. 上限. 1500. -32. 下限. 0. 180. 表 13 1:1 權重表. 其中每張牌避免放槍權重= ∑42 要的機率 p × 要的回合數 p,則可得到新的避 免放槍權重值= 7.0754 × (180 − V) ,V值表示該牌避免放槍的權重,同樣的,此 時新的避免放槍權重值,再加上胡牌權重值成為決策捨牌的依據,該值越大表示 可獲益的分數越高。 經過大量對下後得到的結果如下表:. 45.

(53) Player1. Player2. Player3. Player4. 胡牌次數. 29429. 29442. 29380. 29540. 放槍次數. 22590. 22912. 22923. 22985. 表 14 1:1 實驗結果. 上方表 12 與表 14 的 Player1 為本程式 Take,另外三家皆為 ThousandWind, 可發現第二種決策方法更能達到避免放槍,反倒是第一種決策方式放槍次數沒有 明顯降低;其原因可能是因為被捨棄的牌的機率被放大太多,導致會有在更前面 巡目時的捨牌權重值累加,分數高於最近捨牌的權重值,至於本應該跟著捨離當 前最近巡目的捨牌,反倒以為離當前較遠巡目的捨牌是較優的;為了避免會有判 斷錯誤的情形發生,最後我們選用實驗結果較佳的後者。. 46.

(54) 實驗與成果 本研究是延續國立台灣師範大學資訊工程所陳新颺所開發的 ThousandWind 程式,透過該程式來進行貝氏信賴網路的學習,使得其捨牌決策等有所改變,並 另本程式命名為 TaKe,為麻將花牌中竹子在日文的稱呼。研發時,使用的電腦處 理器為 E5-2620,64 位元作業系統;開發環境是 Code::Blocks,使用語言為 C++。. 5.1 巡目數的抉擇 ThousandWind 開發者陳新颺在其論文中提出[18],在遊戲進行到約八巡目時, 同時約有 80%的場次會在剩餘 32 張牌前結束,也就是大多數情況下,當遊戲進行 到第 10 巡目後就會結束,因此可以假設成在 10 巡目之後,若是手中的牌不易達 到胡牌,則改採保守型的打牌方式。 本程式 TaKe 最初延續 ThousandWind 程式時在 10 巡目後判斷現今手牌是否 已經聽牌,如果沒有,則便會開始拆組搭,選擇跟這一巡的玩家捨牌,或放槍率 最低的一張牌。但是 TaKe 本來採取的就是保守型打牌方式,在遊戲進行不到 10 巡目前,就會為了不要讓其他玩家湊到組搭,可能選擇捨掉自己當下容易湊成組 搭的牌,雖然組搭數並沒有因此而減少,然而會導致胡牌速度下降;故而仍在第 10 巡目就放棄胡牌轉為避免放槍的打法,會使得胡牌次數更被銳減。在經過實驗 後,決定改為在第 15 巡目若還未聽牌,才做拆牌的選擇,下表為實驗結果。. 47.

(55) 巡目. 12. 13. 14. 15. 胡牌數. 27783. 27804. 27824. 28058. 放槍數. 25810. 26038. 26066. 26184. 總分. 550. -3652. 11. 3091. 表 15 巡目實驗結果. 四家分別在不同巡目做拆牌,於 15 巡目再拆牌雖然放槍次數 26184 不是最 少,但是胡牌數與總分有確實的提高。. 5.2 選擇防衛對象 TaKe 程式在 TCGA 2014 電腦對局前,選擇放槍對象為所有自己外的玩家, 但是在比賽後的成果不如預期,胡牌率降低許多,如表 17 顯示的比賽結果;在賽 前與這次金牌得主 ThousandWind 先前研發的程式對下,胡牌率確實有所降低,但 是只降低 1%到 2%左右,多次多局對下還偶有為勝方,在 TCGA 2014 電腦對局比 賽總分差距會如此之大,推估可能是另外兩家的決策影響我方胡牌速度。 賽後為了讓胡牌率提高,考慮到莊家胡牌、自摸時都會比閒家再加一台,在 比賽中應該要盡量避免放槍給莊家,或盡量讓莊家沒有湊齊組搭的機會,故賽後 做了個簡單的實驗,實驗結果如表 16。. 48.

(56) Player1. Player2. Player3. Player4. 胡牌數. 27669. 27590. 27618. 27231. 放槍數. 21263. 21410. 21266. 21475. 總分. 2094. 1146. 538. -3378. 表 16 選擇防衛對象之實驗結果. 表中 Player1 為只針對莊家做避免放槍,其餘三家為對自己外的所有玩家, 其結果可看出胡牌次數有所提升,故只針對莊家確實有其效果;從現有程式做一 些改良,希望有機會在以後的比賽中,可獲得更好的成績。. 5.3 比賽紀錄 下面三張圖為 TCGA 2014 的比賽紀錄,分別為四家的放槍次數、胡牌次數 及自摸次數,橫坐標為第幾將,縱座標為在此將的放槍、胡牌、自摸次數;從圖 中可以發現本程式 TaKe 的放槍次數最低,且只有在第六將時意外地放槍次數大 增。雖然放槍次數明顯降低許多,然而胡牌率同時也跟著下降,造成總分無法提 升,故而無法奪牌。此外因為平台的限制,故而根據名次來決定捨牌取向無法實 作,無法得知在比賽中是否能起到影響分數的效果,是較為可惜的部分。. 49.

(57) 7 6. 次數. 5 4 3 2 1 0 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 11. 12. 將 AFKMJ. TaKe. LongCat. ThousandWinds. 圖 27 TCGA2014 放槍次數 8 7 6. 次數. 5 4 3 2 1 0 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 將 AFKMJ. TaKe. 圖 28. LongCat. TCGA2014 胡牌次數. 50. ThousandWinds.

(58) 3. 次數. 2. 1. 0 1. 2. 3. AFKMJ. 4. 5. 6. TaKe. 將. 7. LongCat. 8. 9. 10. 11. 12. ThousandWinds. 圖 29 TCGA2014 自摸次數. 另外我們看下表 17,發現胡牌次數最多的為東華大學的 AFKMJ,但是胡牌 次數次多、自摸次數最多的交通大學的 LongCat 相比,胡牌加上自摸次數量雖然 AFKMJ 較少於 LongCat,但次數相差並不大,然而分數差距卻高達 64500,且比 起胡牌加上自摸次數更少的 ThousandWind,分數差距又更遠,可知胡牌次數多雖 佳,但卻比不過自摸多次來的可以獲得更多分數。 再來比較 TCGA 2014 麻將電腦對局冠軍 ThousandWind 和亞軍的 LongCat, ThousandWind 的胡牌加自摸次數雖然只是位居第三,但是自摸次數和 LongCat 卻 是同等次數,加上放槍次數也較 LongCat 少,最後總分卻比 LongCat 高出 13000 分;故而可以發現,大牌型的模擬以及降低放槍率確實在追求總分是有用處的, 尤其在雙方胡牌次數、自摸次數差距皆不大時。. 51.

(59) AFKMJ. TaKe. LongCat. ThousandWind. 總分. -27500. -59500. 37000. 50000. 胡牌次數. 43. 26. 38. 32. 自摸次數. 8. 7. 17. 17. 胡牌+自摸數. 51. 33. 55. 49. 放槍次數. 33. 30. 40. 36. 表 17 TCGA 2014 總結果. 52.

(60) 5.4 人機比賽紀錄 TCGA 2014 電腦麻將對局比以往電腦對局比賽多了麻將人機大賽,同時也是 全球首次麻將人機大賽,由電腦對局中獲得金、銀牌的兩支程式,即 ThousandWind 與 LongCat,對上曾於 2007 年 6 月 15 至 17 日澳門世界麻將大賽中榮獲第三名, 有「台灣雀后」之稱的余筱萍小姐及其母親李亞萍小姐。 規則同麻將電腦對局的規則,因人類打牌速度不比電腦,且人類打牌時間長 久也會疲累,故而不可能如同電腦對局 192 局,只對戰 40 局,座位每打兩圈其中 兩人交換;局數雖然較少,但是仍可以比較人類與電腦的差距。最終比賽結果與 預料中相差甚遠,兩支電腦程式分別獲得金牌、銅牌,且此次獲得金牌的程式為 LongCat,原先獲得金牌的 ThousandWind 反落到銅牌,銀牌則由李亞萍小姐奪得。 因為是首次的人機大賽,人類玩家對電腦操作可能較不習慣、較容易受到外 界干擾,並且比賽限時 5 秒內出手,否則電腦會自動出最新拿到的一張牌,也會 造成人類玩家的壓力,或因為思考而來不及出牌等狀況,這次人機大賽比賽結果 算是電腦險勝;下表 18 為人機比賽結果,可看出這次比賽 ThousandWind 的自摸 次數僅有一次,雖然胡牌次數是最高,分數差距就和自摸次數最多的 LongCat 差 很大了,李亞萍小姐則雖然放槍次數多,但自摸次數也稍多,提高了總分奪得銀 牌。. 53.

(61) LongCat. ThousandWind. 余筱萍. 李亞萍. 總分. 30500. -12000. -14000. -4500. 胡牌次數. 9. 10. 4. 5. 自摸次數. 6. 1. 2. 3. 胡牌+自摸數. 15. 11. 6. 8. 放槍次數. 6. 1. 2. 3. 表 18 TCGA 2014 人機大賽結果. 圖 30 余筱萍及李亞萍小姐參加 TCGA 2014 麻將人機大賽. 54.

(62) 結論與未來展望 本研究是延續陳新颺所開發的 ThousandWind 程式,除了使用該程式來進行 貝氏信賴網路的學習外,實驗中也多以 ThousandWind 程式對局,比較經過本實 驗的改良後程式,查看預計的成效是否有達到效果。 根據實驗結果與比賽紀錄,可以發現本程式提出使用貝氏信賴網路,藉由記 錄各家的捨牌,根據每一巡的動作與捨牌的關聯性,可以更加準確地計算、找出 各家實際上可能需求的牌,經過決策的衡量,確實可以達到降低放槍次數。 降低放槍率及提高胡牌率之間雖然確實有所衝突,但是從比賽紀錄中仍可看 出避免放槍並非完全不需要的,在總胡牌次數接近時降低自己的失分,也是策略 之一,如果可以找出放槍與胡牌之間的平衡點,在不影響胡牌速度、次數的狀況 下,是否能做到避免放槍,或讓自身總分損失最小的狀況下失分,是可以再努力 的部分。 貝氏信賴網路的應用應不只可應用於避免放槍上,在本實驗中,只根據玩家 的捨牌學習該玩家可能需求的牌,來達到避免放槍,但是以想追求胡牌次數更多, 可以讓貝氏信賴網路學習玩家不需要的牌,進而有機會吃、碰其他玩家的牌,提 高胡牌率或胡牌次數。以及目前貝氏網路學習可能要的牌僅限於人類玩家提出的 幾種,未來可以擴大學習的更完整,例如,在玩家做吃、碰、槓及摸動作後的捨 牌,可能需求的牌從同花色的一到九皆去確認。 另外在比賽中,可以確實發現自摸的重要性遠大於胡牌次數,但是自摸帶有 55.

(63) 著機率性、不確定因素在內,大多也都只能期望在於運氣;在本實驗中可知貝氏 信賴網路計算機率的方式確實能應用於麻將遊戲中,因此未來可以使用貝氏信賴 網路找出現在手牌中還缺的牌,是否能由自己在牌堆中摸到,或是缺失的牌莊家 丟出機率較大等方式,提高胡牌時的台數,爭取更高的總分。 還有小牌型、大牌型的模擬,同樣也可以使用貝氏信賴網路來加強,根據尚 缺的牌及附近的牌場上剩餘數量、其他玩家在此局、此巡的需求性等等資訊,計 算出可得到的機率,選擇應該往哪一方向來選擇捨牌;提高台數除了擁有小牌型、 大牌型外,若莊家是放槍者也可提高自己的台數,因此可以針對莊家,找出莊家 需求機率較低的牌,期望在終局聽牌時是否能由莊家放槍給自己。 避免放槍的防守型打法雖然在台灣麻將不是很理想,但貝氏信賴網路仍能應 用在其他麻將決策上,或是應用於其他相同含有機率性遊戲上,希望本論文可給 予未來研究電腦對局程式的參考方向,讓有更多、更好、更接近人類實力的電腦 對局程式研發出來,與人類高手們一較高下。. 56.

(64) 附. 錄. LongCat. ThousandWind. 余筱萍. 李亞萍. 胡牌次數. 3. 2. 1. 0. 自摸次數. 1. 1. 1. 3. 放槍次數. 6. 1. 1. 0. 附錄 1 TCGA 2014 人機大賽 1-8 局. LongCat. ThousandWind. 余筱萍. 李亞萍. 胡牌次數. 2. 3. 0. 1. 自摸次數. 2. 1. 2. 1. 放槍次數. 0. 0. 1. 0. 附錄 2 TCGA 2014 人機大賽 9-16 局. LongCat. ThousandWind. 余筱萍. 李亞萍. 胡牌次數. 2. 2. 0. 1. 自摸次數. 0. 0. 3. 2. 放槍次數. 1. 0. 0. 2. 附錄 3 TCGA 2014 人機大賽 17-24 局. LongCat. ThousandWind. 余筱萍. 李亞萍. 胡牌次數. 2. 0. 2. 2. 自摸次數. 1. 2. 1. 2. 放槍次數. 2. 0. 0. 0. 附錄 4 TCGA 2014 人機大賽 25-32 局 57.

(65) LongCat. ThousandWind. 余筱萍. 李亞萍. 胡牌次數. 0. 3. 1. 1. 自摸次數. 1. 1. 1. 2. 放槍次數. 2. 0. 0. 1. 附錄 5 TCGA 2014 人機大賽 33-40 局. 剩餘張數 要的牌. 4. 3. 2. 1. 1. 0.111377. 0.018943. 0.001921. 0.000293. 4. 0.152056. 0.038073. 0.005169. 0.000171. 7. 0.136386. 0.020741. 0.002998. 0.000448. 3. 0.157588. 0.023683. 0.003239. 0.000294. 6. 0.164958. 0.034862. 0.00521. 0.000777. 9. 0.096855. 0.020913. 0.002858. 0.000187. 附錄 6 碰後捨五在場上剩餘 4 到 1 張時要的機率. 58.

(66) 剩餘張數 要的牌. 4. 3. 2. 1. 捨7捨4要3. 0.009303. 0.005094. 0.001788. 0.000424. 捨7捨4要6. 0.011307. 0.00421. 0.000942. 0.000109. 捨4捨1要3. 0. 0. 0. 0. 捨8捨5要4. 0.073876. 0.018032. 0.002354. 0.000786. 捨8捨5要1. 0.065694. 0.023658. 0.004186. 0.001385. 捨5捨2要1. 0.007091. 0.0077. 0.003968. 0.001008. 捨5捨2要4. 0.011292. 0.006403. 0.002138. 0.000229. 捨9捨6要5. 0.101139. 0.024268. 0.00476. 0.000134. 捨9捨6要2. 0.100717. 0.023597. 0.005426. 0.000433. 捨6捨3要2. 0.006876. 0.006148. 0.001904. 0.000442. 捨6捨3要5. 0.007715. 0.005939. 0.001423. 0.000213. 捨1捨4要5. 0.045333. 0.014965. 0.00269. 0.000252. 捨1捨4要8. 0.079719. 0.019981. 0.005108. 0.001228. 捨4捨7要8. 0.010034. 0.010398. 0.004924. 0.001546. 捨4捨7要5. 0.01764. 0.011243. 0.003331. 0.000652. 捨2捨5要6. 0.032994. 0.00775. 0.001363. 0.000178. 捨2捨5要9. 0.040603. 0.01542. 0.003834. 0.001136. 捨5捨8要9. 0.009166. 0.011012. 0.006514. 0.002637. 捨5捨8要6. 0.026963. 0.011479. 0.002276. 0.000305. 捨3捨6要7. 0.00918. 0.007429. 0.001782. 0.000402. 捨3捨6要4. 0.014302. 0.007639. 0.002158. 0.000322. 捨6捨9要7. 0. 0. 0. 0. 附錄 7 前後兩巡捨同線牌時在場上剩餘 4 到 1 張時要的機率. 59.

參考文獻

相關文件

螺紋、偏心、輥花等。CNC 車床設計 CNC 加工程 式,模擬加工路徑;或經由電腦輔助設計製造系

阿吉老師將簡介 micro:bit 開發程式環境,並分享 micro:bit 內建感測器程式編寫、數位/類比信號讀取及寫入,並了解 如何用 micro:bit 連接電子模組編寫程式進行機電整合。.

Ctrl+N 建立一個新的 VI Ctrl+B 將程式方塊圖中所有壞線移除 Ctrl+R 執行目前的的 VI Ctrl+T 將人機介面與程式方塊圖左右並列 Ctrl+W 關閉目前的的 VI Ctrl+E

高等電腦輔助設計與製造 (Advanced Computer Aided Design and Manufacturing).

RMI,及 DCOM 這些以專屬 binary 格式傳送資料所不及之處,那 就是對程式語言、作業平台的獨立性--由於是純文字 XML 格 式,

 教師介紹投委會的「收支管家–錢家有 道」手機應 用程式 , 方 便學生實 踐所

依照工作圖或樣品選用適當材料、刀具、夾具及工具,熟悉 CNC 車床操作,設計 CNC

(2) 讚美︰小明是個電腦程 式設計愛好者。最近他參 加義工活動,為安老院設 計了一款自動開門感應