上海(ゲーム)のクリア確率は?                                               2015年1月 畑啓之


上海(ゲーム)とはどのようなもの

上海(ゲーム)(Wikipedia)に本ゲームのルールが次のように記されている。

最初は、季節牌4枚(春、夏、秋、冬)、花牌4枚(梅、蘭、菊、竹)を含む合計144枚の麻雀牌が積み上げられた状態が表示される。

その牌の山の中から、同じ牌を2枚選ぶと、その牌を取り除くことができる(季節牌と花牌は、季節牌同士、花牌同士であれば良い)。ただし、左右両方に隣接する牌がある場合や、上に牌が乗っている場合はその牌を選ぶことはできない。

144枚全てを取り除くことができればゲームクリア、牌が残っているにも関わらず、取り除くことのできる牌がなくなったらゲームオーバーとなる。


パソコンにはこの上海(ゲーム)(以降では単に上海と記す)が最初から入っているものが多い。次の図1と図2は、私のパソコンに入っている上海の初期配牌の一例である。図3は通常の麻雀牌の種類である。

 図1 上海の配牌例1 図2 上海の配牌例2 
   


上海で用いられる牌と、通常の麻雀で用いられる牌の関連を記したのが次の図だ。萬子(マンズ)は見やすいように「棒の本数」記号で記してある。筒子(ピンズ)、索子(ソウズ)はそのままの形で使われている。なお、索子の1は少しデザインが違っているが、上海に記されているのは竹に雀だ。竹と雀の組み合わせは掛け軸などにもよく描かれ、めでたいことの象徴だ。麻雀(Wikipedia)によると、「現在の中国語においては麻雀のことを一般に「麻将」(マージャン májiàng)という。「麻雀」(マーチュエ máquè)は中国語ではスズメを意味する。」となっており、この竹の1が麻雀の名の由来かもしれない。

風牌として「東南西北」の4種類がある。これらの牌は、私のパソコン中の上海では風を模した図案で描かれ、それぞれの色を変えるとともに左上隅に「E、S、W、N」の文字を配して識別してある。

麻雀の三元牌に相当するのが3色に色分けされた「龍」である。

萬子(9種類)、筒子(9種類)、索子(9種類)、四風牌(4種類)、三元牌(3種類)が通常の麻雀で用いられる牌34種類である。上海ではさらに「植物」牌および「風景」牌の2種類を加え、合計で36種類の牌としている。

 図3 麻雀牌(Wikipedia)より 上海で用いられる牌 コンピュータ中での取り扱い
  萬子牌   棒記号 9種類


筒子牌  同じ表記 9種類


索子牌  同じ表記 9種類


四風牌 風を図案化 4種類


三元牌 龍に図案化 3種類 


花牌 植物を図案化 1種類

加えて
風景 風景を図案化 1種類

合計 36種類
各牌4枚ずつで、合計144枚の牌を使用

それぞれの牌種に次の番号付を行って牌種を識別した。

萬子      1 ~ 9

筒子牌    10~18


索子牌    19~27


四風牌    28~31
  ESWN の順

龍牌      32~34
  赤緑黒 の順

植物牌      35

風景       36

合計 36種類 × 4 = 144枚
 



上海は絶対に解けるのか(クリアすることができるのか)

この疑問に答えるには、解けない例を探せば良い。思いつく例を3つ記した。

図4は絶対に解けない配牌である。配牌の時点で打つ手がない。説明は図の左に加えた。
図5も頂上牌によりその下にある16個の牌が影響を受ける。もしこの頂上牌と同種の残り3個の牌がこの16個の牌に含まれていると解けなくなる。
図6も同種の牌が右側に連なって存在している例だ。4列目、5列目の牌が左側からなくなって、やっと残ったA3牌とA4牌を消すことができるが、クリアできる確率はほぼ不可能と思える程に極めて低い。

図4 解けない配牌(その1) 図4の構成
 図1より、上海は上から順に8列の山より成り立っていることがわかる。さらに上4列と下4列の間には、そのちょうど中心の頂上部に頂上牌がひとつ置かれる。図1でいえばこれは索1(竹1)に相当する。
 この構成を図で示したのが、左図・図4である。1~8列を並べ、各列の積み重ねの様子も表現している。そして、中央部分には頂上牌を、図の両端には中央部の2列を両端から押さえ込んでいる牌を表現した。図1でいえば、左側の牌が索7(竹7)、右側の2個の牌が筒9と索6(竹6)に相当する。

ゲームの原則
 上で紹介した上海(Wikipedia)のとおりである。取り除くことが可能で、一致する牌があれば2個同時に取り除くことができる。赤矢印を入れたものは、矢印の根元の牌が残っている限り取り除くことができない。

図4に組み合わせペアが生じない理由
 使用する牌の種類は36種類である。取り除くことが可能な牌は配牌時点で35箇所である。従って、取り除ける可能性のある牌の位置に図のように異なった牌35個を配することは可能で、そうした場合一致する牌がなくなる。 
  全く組み合わせを作ることができない配牌
   
図5 解けない配牌(その2) 図6 解くのが難しい配牌(その3)
  頂上配が取り除けない限りその下にある牌も取り除けない A1とA2が取り除かれる確率は極めて低い
   
   
図7 必ず解けると期待を抱かせる組み合わせ 図8 必ず解ける組み合わせ

 ここに示した組み合わせは、それぞれの列の両端を素直に合わせていけばクリアできそうに感じられる。しかしながら、クリアできる確率は2/3、すなわち67%である。

 見ていただくとわかるように、中央部分の頂上牌、4列と5列を左右より押さえ込んでいる牌3個の全てが同じ種類となっている。この4個の牌を図に示しているようにA1、A2、A3、A4とする。この中でまず取り除くことができる牌はA1、A2、A4の3個である。

 取り除き可能な組み合わせとしては、A1-A2、A1-A4、そしてA2-A4となる。この中で、A1-A2の組み合わせでは、A3とA4が残ることになり、図6で示した解けない組み合わせとなってしまう。残りの2つのケース、A1-A4とA2-A4の組み合わせならゲームをクリアすることができる。従って、ゲームをクリアできる確率は2/3となる。

 図6での欠陥を改良したのがここに示した牌の並びである。A2とA4の牌を、上の第4列の第4段目の牌と入れ替えた。

 こうすることで、先ほど問題点であったA3とA4位置の牌が同種類で取り残されることがなくなり、その結果、この配牌では100%の確率でこのゲームをクリアすることができる。
   




実際の上海のクリア確率は28%程度

パソコンで上海に挑戦すると、回数を増やして行ってもそのクリアできる確率は27~29%の間で僅かな変動があるだけだ。これは私に学習能力がなく、このゲームを絶対にクリアしてやろうとの気概もないことがその原因となっている可能性が強い。目に付いたマッチング牌(ペア牌)を単純に取り除いていけば、この成功確率の範囲に自然に落ち着いてしまうということのようである。

11回挑戦すればそのうちの3回はクリアできるこのゲームは、それなりに達成感(成功体験)が味わえるということだろう。何度やっても失敗続き(ゲームオーバー)では早期にやる気が失せるであろうし、必ずクリアできるゲームでは面白みもない。その点、この3割弱の成功確率は、ゲーマーをつなぎとめておくにはちょうど良い確率である。

上海は必ずクリアできるのか? おそらくは毎回新たに提供される配牌はクリアできるように作ってあるだろう。穿った見方をすれば、提供される配牌のパターンの数はそんなに多くはなく、ゲームごとに複数種類の牌がその種類ごとに単に交換されているだけの可能性もある。今仮に6つの並びがあって、AABBCC、AACCBB、BBAACC、BBCCAA、CCAABB、CCBBAAの6つの並びは異なっていいるように見えるが、その基本的な並びは、112233のパターンである。1、2、3に入る記号A,B,Cの順番が入れ替わっているに過ぎない。このようなことをされても、私たちにはそのことがわからない。

このように、パターンが同じで牌の配置のみが入れ替わっている場合、新しく提供されたゲームのクリアできる確率は以前のものとは同じであるが、ゲーマーの目からは全く異なったものに見える。品質(クリアできる確率)を一定に保とうとすれば、このようなパターンは同じであるが牌のみを入れ替える方法はきっと講じられていることと思う。

とは言っても、ゲームの中には難しいものもあれば簡単なものもあり、平均して3割弱のクリア率になるものと考えられる。しかし、悲しいかな、私たちゲーマーは、同じゲームを多数回(例えば100回以上)繰り返してそのクリア確率を確認することはできない。手順を網羅的に追跡するにはあまりにも場合の数が多すぎるのと、それ以前にこの確認をするのは時間的に不可能である。

そこで、コンピュータシミュレーションを用いて、上海のクリア確率がどの程度のものかを確認することとした。

なお、上海では配牌にある傾向がある。すなわち、頂上牌の下の牌に、同種の牌が来ることが多いということだ。例えば、図1では頂上牌の索1(竹1)の下に筒7(ピン7)が2枚、龍(黒)が2枚配置され、図2では頂上牌の風景の下に、竹2が2枚、風景が1枚配置されている。これ以外にも上海特有の牌の並べ方がある可能性もある。

今回検討のコンピュータシミュレーションにおいては、配牌は全くのランダムとし、実際のゲームにあるような特殊な傾向には配慮しなかった。



コンピュータ・シミュレーションの方法

Excel-VBAによりゲームの成行きを追跡した。方法は次のとおりである。

シミュレーションの方法

ステップ1 乱数を用いて配牌を決定する。Excel上の各カラムには、牌の種類に応じて1~36の数値が4個ずつ入る。
ステップ2 取り除くことができる牌を選択し、リストを作成する。
ステップ3 そのリストに中よりマッチング可能な牌を2個、乱数を用いて選択する。
ステップ4 選び出された牌を配牌表(Excel上)より取り除き、同時に取り除いた牌の位置と種類を記録する。
ステップ5 ステップ2に還り、同じ手順を繰り返す。取り除けるペアがなくなった時点でゲームの終了となる。

これを図で示すと次の図9となる。

図9 シミュレーションの方法
除去可能牌の識別について

 除去可能牌にそれぞれ数値を付して、取り除かれる確率の大きさをコントロールする。付加数値=乱数値(0~1)+位置情報値で、位置情報は中央牌+端牌+列長さよりなる。

乱数発生について

 除去可能牌が複数種類あり、それらの牌のなかより取り除く2個の牌を決定するために、乱数を用いる。
 例えば、除去可能牌に種類「A」の牌が2個、種類「B」の牌が3個あり、それを識別するために、それぞれの牌に乱数で発生させた0~1の間の数値を付加する。
 たとえば、牌「A1」 0.3、牌「B1」0.5、牌「B2」0.1、牌「A2」0.6、牌「B3」0.7といった具合だ。この場合、A1+A2=0.9、B1+B2=0.6、B1+B3=1.2、B2+B3=0.8となり、合計の一番大きな牌「B1」と牌「B3」を取り除くことにする。
位置情報について

中央牌
 中央に並ぶ牌(図11のA、B、C、D牌に相当)は、早期に取り除ければ後々のゲームの進展に有利である。そこで、除去可能牌に正の値を付加し、中央牌の取り除かれる確率を高くする。

端牌
 候補牌が取り除かれた時、残った隣の牌上に牌があれば、この残った隣の牌は次の選択では除去可能牌とはならない。残った隣牌上に牌が存在しない場合に正の値を付加し、常に除去可能牌の数が多く保てるようにする。

列長さ
 ある列が長いままゲームの終盤にまで残されていると 、この列に含まれる牌を取り除ける確率が低くなる。長い列に属する候補牌には正の値を付加し、取り除かれる確率を高くする。



実際の上海の配牌より成功確率を求める

 図1で示した配牌を、図3で示した牌番号に置き換えた。次いで、シミュレーションの方法に示したステップ2~5を繰り返し、1000回のシミュレーションを行い、そのクリア確率を求めた。図9に示した位置情報は考慮していない。この初期配牌の場合、ランダムに牌を合わせて行っても、クリア確率は38%と高い値となった。この配牌においてはペア数が39回、44回と63回に高い回数となっているのが特徴的である。

図10 図1配牌のクリア確率をシミュレーションする シミュレーション結果  クリア確率は38%
  初期配牌を牌番号に置き換え、1000回シミュレーションした   ペア数はゲームオーバーまでに成立したペア数を示し、
  回数はそのペア数が1000回のうち何回であったかを示す。
   



ランダムに作り出した配牌よりクリア確率を求める


 シミュレーションの方法に従い、ステップ1~5を5000回繰り返し、そのクリア確率を求めた。図9に示した方法は、初期配牌を乱数で発生させ、その配牌がクリアできる確率を求めるフローチャートとなっている。しかし、本シミュレーションにおいては初期配牌を乱数で発生させ、ステップに従ってその配牌がクリアできるかをフローチャートに従って1回だけチャレンジした。この初期配牌の発生から1回のみのチャレンジを5000回繰り返した。図9に示した位置情報は考慮していない。その結果、クリア確率は5%と低い値であり、ランダムな配牌の決定、そしてランダムなペア合わせではこの程度の数値が妥当なところではないかとの結論である。

クリア確率を向上させるためには、ゲーム進行の早い段階において、下図11中の中央牌、A牌、B牌、D牌を早い段階で消去する必要がある。72ペアが成立すればゲームクリアとなるが、早い段階でA牌、B牌、D牌を取り除けたとしても、40ペア近辺以降はゲームがクリアできるかどうかは運が支配するところとなっている。

パソコンに入っている上海は、私のような未習熟者が取り組んでもそのクリア確率が27~29%であることから、クリア率が上がるように配牌自体に工夫が凝らされていると見るべきであろう。

図11 シミュレーション5000回繰返し(1回目)  クリア確率5%
  初期配牌を発生させ、どこまでペアが揃うかをみる
中央牌A~Dが早い機会にクリアできるとゲームがクリアできる確率が高まる。

左下表 A牌、B牌、D牌の3牌が最初の10ペアの消去に含まれていないと早い機会(30ペア成立までに)にゲームオーバーとなる確率が高くなる。

右下表 同じく20ペアまでの消去に含まれていないと、早い機会にゲームオーバーとなる確率が高くなる。ゲームクリアした場合には20ペアまでにA牌、B牌、D牌が80%近くの確率で消去されている。
 ※ 合計欄は5000回のゲームオーバー時点でのA牌~D牌の
   消去回数を示している。
 ※ 合計欄は5000回のゲームオーバー時点でのA牌~D牌の
   消去回数を示している。


大数の原則を確認する意味でも、再度同じ条件で5000回シミュレーションを行い、図12に示すように、図11に近い結果を得た。

図12 シミュレーション5000回繰返し(2回目)  クリア確率5%
  初期配牌を発生させ、どこまでペアが揃うかをみる



ランダムに発生配牌を100回チャレンジしてみる

図11および図12においては、牌の初期配列を乱数で発生させ、その配列について1回限りのチャレンジを行った。それに対して、以下の図13~図22に示す結果は、図9のフローシートに従って、与えられた初期配牌について100回チャレンジした結果を示している。ただし、このシミュレーションにおいては、図9で示した位置情報については考慮していない。全くランダムにペアとなる牌を取り除いた場合の結果を示している。

なお、図13~図22に示す初期配牌は、コンピュータ上でランダムに発生させた連続する初期配牌10ケースをその順番に並べたものである。

初期配牌によっては全くクリアできていないものもあるし、図16のように100回のチャレンジ中20回もクリアできているものもある。図13から図22まで各100回チャレンジしたときのクリア回数は順番に、3回、1回、1回、20回、0回、11回、3回、0回、3回、0回となった。この最高となった20回のクリア率も実際の上海)のクリア率27~29%と比べると低いものであるし、図10で示したように実際の上海の配牌(図1)を同じようにシミュレーションした場合のクリア率38%と比べるとはるかに低いものである。

図13から図22の10回のクリア率を平均すると4.2%である。これは、図11での5000回シミュレーションの5.2%、同じく図12での5.0%に対しては妥当な数値となっている。ただし、そのばらつきは0回~20回と非常に大きなものであり、初期配牌にクリア率が大きく影響を受けることを示している。

各ケースについて、良い成績を与えたものから2例、悪い成績を与えたものから2例をとりだし、そのゲームの進行状況を図示した。各ケースの右下にあるリンクをクリックすると各図を表示させることができる。

図13 Case01 100回繰返し クリア確率3%
 
消去ペア数の多い方から順に、ペアのマッチングしていく様子を示す。

上表のブルーの部分

   Case01-1   Case01-2

上表のピンクの部分

   Case01-3   Case01-4
図14 Case02 100回繰返し クリア確率1%
 
消去ペア数の多い方から順に、ペアのマッチングしていく様子を示す。

上表のブルーの部分

   Case02-1   Case02-2

上表のピンクの部分

   Case02-3   Case02-4
図15 Case03 100回繰返し クリア確率1%
 
消去ペア数の多い方から順に、ペアのマッチングしていく様子を示す。

上表のブルーの部分

   Case03-1   Case03-2

上表のピンクの部分

   Case03-3   Case03-4
図16 Case04 100回繰返し クリア確率20%
 
消去ペア数の多い方から順に、ペアのマッチングしていく様子を示す。

上表のブルーの部分

   Case04-1   Case04-2

上表のピンクの部分

   Case04-3   Case04-4
図17 Case05 100回繰返し クリア確率0%
 
消去ペア数の多い方から順に、ペアのマッチングしていく様子を示す。

上表のブルーの部分

   Case05-1   Case05-2

上表のピンクの部分

   Case05-3   Case05-4
図18 Case06 100回繰返し クリア確率11%
 
消去ペア数の多い方から順に、ペアのマッチングしていく様子を示す。

上表のブルーの部分

   Case06-1   Case06-2

上表のピンクの部分

   Case06-3   Case06-4
図19 Case07 100回繰返し クリア確率3%
 
消去ペア数の多い方から順に、ペアのマッチングしていく様子を示す。

上表のブルーの部分

   Case07-1   Case07-2

上表のピンクの部分

   Case07-3   Case07-4
図20 Case08 100回繰返し クリア確率0%
 
消去ペア数の多い方から順に、ペアのマッチングしていく様子を示す。

上表のブルーの部分

   Case08-1   Case08-2

上表のピンクの部分

   Case08-3   Case08-4
図21 Case09 100回繰返し クリア確率3%
 
消去ペア数の多い方から順に、ペアのマッチングしていく様子を示す。

上表のブルーの部分

   Case09-1   Case09-2

上表のピンクの部分

   Case09-3   Case09-4
図22 Case10 100回繰返し クリア確率0%
消去ペア数の多い方から順に、ペアのマッチングしていく様子を示す。

上表のブルーの部分

   Case10-1   Case10-2

上表のピンクの部分

   Case10-3   Case10-4


位置情報とクリア確率

図9で示した位置情報は、クリア確率に影響を与えると考えられる。そこで、まず、上で示した図13~図22のケースについて、100回中3回のクリア成績を与えたケース1とケース7について、位置情報を変化させてクリア確率がどのように変化するかを確認することにした。

中央 :図9において図11の牌A~Dが除去可能牌であるとき、その牌に数値情報を加える。
重なり:除去可能牌を取り除いた時に、その横の次に除去可能牌となる牌の上に牌が乗っていない時に数値情報を加える。
長さ :長い列がそのまま最後まで残るとクリアが難しくなるので、長い列の除去可能牌には大きな数値情報を加える。列長さ/120を1単位としている。

結果は、ケース01の場合を図23に示した。位置情報を大きくするとクリア確立が向上すると考えたが、逆に小さくなってしまった。むしろ、位置情報をクリアのためには悪い方向と考えられるマイナス値とした場合にクリア確率が向上した。問題個々についてクリアに至る手筋があるということだろう。

ケース07の場合を図24に示した。このケースでも位置情報としてプラスの数値を付加するとクリア確率は低下した。

図23 Case01   100回繰返しシミュレーション当たりのクリア確率と総ペア成立回数
中央-0.1+重り-0.1+長さ-0.1+乱数0~1 中央0+重なり0+長さ0+乱数0~1 中央0.1+重なり0.1+長さ0.1+乱数0~1
クリア確率5% 総ペア成立回数4076回 クリア確率3% 総ペア成立回数3921回 クリア確率3% 総ペア成立回数4297回
中央0.3+重なり0.2+長さ0.1+乱数0~1 中央0.6+重なり0.4+長さ0.2+乱数0~1
クリア確率2% 総ペア成立回数4045回 クリア確率0% 総ペア成立回数4349回 得られた結果の特徴
位置情報

ずべてをマイナスにするとクリア率が向上する。
   
  位置情報

大きくするとよいい方向と思ったが、結果は逆であった。
図24 Case07   100回繰返しシミュレーション当たりのクリア確率と総ペア成立回数
中央-0.1+重り-0.1+長さ-0.1+乱数0~1 中央0+重なり0+長さ0+乱数0~1 中央0.1+重なり0.1+長さ0.1+乱数0~1
クリア確率2% 総ペア成立回数4473回 クリア確率3% 総ペア成立回数4482回 クリア確率1% 総ペア成立回数4398回



5000回シミュレーションと位置情報

図11と図12に示したと同じ方法でシミュレーションを行い、そのクリア確率を調べた。図11と図12の位置情報が0のときはそのクリア確率は5.2%と5.0%であったが、位置情報をプラス0.1とするとそのクリア確率はほんの僅かではあるが6.1%へと向上した。下の図25と図26を比較してわかるのは、位置情報としてプラス0.1を与えることによって、位置情報がゼロの場合と比較して、低いペア数でゲームオーバーとなる回数が少なくなったということである。

この位置情報をプラス0.3とした時のクリア確率は6.1%となり、位置情報をプラス0.5およびプラス1.0と変化させると、クリア確率は逆に5.3%および5.1%へと低下した。

図25 図11の再録 図12の再録 図26
中央0+重なり0+長さ0+乱数0~1 中央0+重なり0+長さ0+乱数0~1 中央0.1+重なり0.1+長さ0.1+乱数0~1
クリア確率5% 総ペア成立回数224093回 クリア確率5% 総ペア成立回数223478回 クリア確率6% 総ペア成立回数228701回
   



麻雀牌の山くずしゲーム上海のクリア確率を上げられるかの結論

最初の配牌によりクリアできるかどうかの確率は大きく変動する。簡単に解ける場合もあるし解くことが不可能な場合もある。

配牌がランダムに行われたとき、ゲームをクリアできる確率は約5%である。

この山崩しに、中央牌はできるだけ早い段階で取り除く配慮をする、除去可能牌の数が多くなるように配慮する、長い列は早く短くするように配慮する、の3つの配慮を行った場合でも、ゲームのクリア確率は無作為に牌を取り除いた場合の5%から6%へと、僅かに1%程度大きくなるのみである。

結論としては、
ゲーム上海で提供されている配牌は約3割の確率で解けることを前提とした配牌である。
解き方に自分流のルールを持ち込んでも、ゲームのクリア確率を著しく向上させることは難しい。
このゲームは囲碁や将棋のような完全情報ゲームではないので、結局は運任せということになるようだ。

ということで、このゲームに時間を費やしても、クリア確率を向上させることは難しいとの結論となった。





                           ホームページに戻る