「榮,立直一發自摸斷么七對清一色赤寶一,役滿。」
熱愛日本麻將(以下簡稱「日麻」)的優希,對於「七對子」這個役種有著異常的喜愛。於是,她想請你判斷她的手牌距離達到「七對子」還有多少「向聽」。
或許你正擔心著你對日麻不夠了解——不用擔心,優希會講解的比四年前還要更詳細。
日麻是一種麻將遊戲,使用的牌分為萬子牌、餅子牌、索子牌及字牌。萬子牌、餅子牌、索子牌為數字牌,每個類別皆有九張不同的牌,分別為「一萬」到「九萬」、「一餅」到「九餅」、「一索」到「九索」。而字牌一共由七張不同的牌組成,依序為「東」、「南」、「西」、
「北」、「白」、「發」、「中」。在一副日麻牌中,所有的萬子牌、餅子牌、索子牌、字牌分別各有 4 張,整副日麻一共由 (9 + 9 + 9 + 7) × 4 = 136 張牌組成。
為了方便表示,每張牌皆以一個數字搭配一個字母作為其代碼。數字表示其序數,字母表示其種類:萬子為m、餅子為p、索子為s、字牌為z。舉例來說:「七萬」的代碼為7m、「二索」的代碼為2s、「中」的代碼為7z。
(日麻牌圖片取自維基百科,由 Cangjie6 上傳,以創用 CC 姓名標示-相同方式分享 4.0 國際授權條款釋出。)
在大部分的日麻牌局中,通常會加入一種特別的牌——赤寶牌。赤寶牌一共有三種:赤五萬、赤五餅、赤五索,代碼分別為0m、0p、0s。一個常見的赤寶牌規則為,取出五萬、五餅、五索各一張,並加入赤五萬、赤五餅、赤五索各一張。這樣一來整副牌的數量沒有變動,只是其中一張五萬、五餅、五索被換成了赤寶牌。在本題中我們也將採用上述的三張赤寶牌的日麻規則。赤寶牌與對應的一般牌視為兩張相同的牌,但在計分時手上的赤寶牌數量將提升得到的點數。在瞭解了整副日麻牌的組成後,優希終於可以開始講解日麻遊戲的流程了。在日麻的遊戲過程中,玩家大部分時候手上皆持有 13 張牌,當輪到玩家「摸牌」時,玩家會取一張牌加入手牌。當手上的 13 張牌與取來的牌組成特定的組合時,即為「自摸」。若取來的牌沒能達成特定組合,玩家必須從 14 張牌中選擇其中一張打出,回到手上只持有 13 張牌的狀態。
在所有的組合中,優希最喜歡的便是「七對子」了。「對子」指的就是兩張相同的牌,顧名思義,七對子就是手上的 14 張牌分別能組成 7 個不同的對子。更精確的說,無論手牌的順序為何,只要手上的 14 張牌能分成七組,且每組牌為兩張相同的牌,並且每一組之間的牌皆相異,則這 14 張牌形成「七對子」。特別注意的是,赤寶牌與其對應的一般牌可以組成一個對子,並且其與兩張對應的一般牌組成的對子被視為是相同的。例如:五餅和赤五餅可以組成一個對子,但其與兩個五餅組成的的對子被視為是相同的。
最後,優希要教你什麼是「聽牌」與「向聽」。對於手上的 13 張牌,若存在某一張牌在取進手牌後可以滿足「七對子」條件,這 13 張牌就被稱為是七對子「聽牌」。而七對子的「向聽」數量即表示至少還要再「摸牌」幾次才能達到「聽牌」的條件。在本題中,我們將「聽牌」狀態的「向聽」數量視為 0。
舉例來說,1m 1m 2m 2m 3m 3m 4m 4m 5m 5m 6m 6m 7m這 13 張牌達到七對子的
「聽牌」,因為只要再取進一張7m,即可滿足七對子的條件;而1m 1m 2m 2m 3m 3m 4m 4m
0m 5m 6m 7m 8m的七對子「向聽」數量即為 1,因為如果在下次「摸牌」時取進6m並打出
7m或8m,即可達到「聽牌」條件。
在說明完了一大串的日麻規則後,想必你已經對日麻躍躍欲試了!給你優希手上的 13 張牌,她想請你判斷這些牌的七對子向聽數。為了向優希學到更多日麻知識,請你寫一支程式幫幫優希吧!
輸入僅一行,包含 13 個字串 S1,S2,...,S13,表示優希手上的十三張牌的代碼,字串間以一個空白隔開。
輸出一行,包含一個整數,表示優希手牌的七對子向聽數。
1m 1m 2m 2m 3m 3m 4m 4m 5m 5m 6m 6m 7m
0
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
沒有發現任何「解題報告」 |