麻雀ルールのカスタマイズ(3) ~ 赤牌とドラ

電脳麻将 ver.2.0 で開発中の新機能「パラメータによるルールのカスタマイズ」。麻雀ルールのカスタマイズ(2) ~ 流局処理と連荘判断 - koba::blog からだいぶ間が空いたが今回の話題は 赤牌ドラ。これらに関わる パラメータ は以下の通り。

  • 赤牌
  • 裏ドラあり
  • カンドラあり
  • カン裏あり
  • カンドラ後乗せ
続きを読む

牌の危険度計算アルゴリズム(4)

電脳麻将 の現在の押し引きアルゴリズムは親に対する考慮がない。牌の危険度計算アルゴリズム(1) - koba::blog までの 絶対危険度 は危険度を現物、字牌、スジ、無スジのように離散的に扱っており、危険度の値は序列を表しているに過ぎなかったのだが、牌の危険度計算アルゴリズム(2) - koba::blog牌の危険度計算アルゴリズム(3) - koba::blog相対危険度 を導入し、危険度が連続値になったことにより「親の危険度は1.5倍」のような比較が可能になった。今回は親のリーチに対する危険度を変動させながら実際にAI同士を対戦させ、適切な値があるのか検証する。

続きを読む

ソバテン・裏スジは危険?

リーチ宣言牌のスジは危険? - koba::blog に続いて 牌譜解析ツールリーチ宣言牌と同種の数牌最初に切られた数牌と同種の数牌 について危険度*1の統計をとってみた。

  • 数牌の平均危険度
  • リーチ宣言牌との相関
  • 最初に切られた数牌との相関

*1:危険度 = 待ちになった回数 / リーチ回数。『統計学のマージャン戦術』「黒ひげ危機一発方式」とは意味が違うのでご注意を😁

続きを読む

リーチ宣言牌のスジは危険?

電脳麻将 の牌譜解析機能を npm パッケージ化しました。

電脳麻将形式の牌譜を解析する基底クラスを提供します。本クラスのサブクラスを作成し、解析のためのプログラムを書く ことができます。天鳳の牌譜も tenhou-log で電脳麻将形式に変換し、解析する ことが可能です。

今回は例題として リーチ宣言牌のスジが危険か 解析してみます。いわゆるモロ引っ掛けですね。

続きを読む

牌の危険度計算アルゴリズム(3)

牌の危険度計算アルゴリズム(2) - koba::blog で実現した牌の 相対危険度 を押し引きに適用する。従来は手牌を 愚形*1好形*2超好形*3 の3種、切る牌を 安全*4危険*5 の2種に分類し、以下のパターンで押し引きを決定していた。

安全牌あり 安全牌なし
愚形 ベタオリ(危険度最低の牌を切ってオリる)全押し(危険牌を切ってもよい)
好形 回し打ち(安全牌なら切ってよい)
超好形全押し(危険牌を切ってもよい)

相対的危険度を使えば危険牌をさらに分類できるはずで、それにより上記パターンの 全押し について細分化できるのではないかと期待する。

*1:3シャンテン以前か評価値400未満

*2:評価値400以上1200未満

*3:評価値1200以上かテンパイ

*4:字牌かスジ

*5:無スジ

続きを読む

牌の危険度計算アルゴリズム(2)

牌の危険度を評価する際に「スジをカウントする」のが最近のトレンドのようである*1。これは「終盤になり安全牌が増えればその分残った牌の危険度が上がる」という考え方で、相対危険度 のようなもの。牌の危険度計算アルゴリズム(1) - koba::blog で実装したカベを考慮した危険度は、巡目によって変化しない 絶対危険度 なので、

  • その牌の絶対危険度 / 絶対危険度の総和

で相対危険度を計算し、押し引きに利用することを試みる。

続きを読む

麻雀ルールのカスタマイズ(2) ~ 流局処理と連荘判断

電脳麻将 ver.2.0 で開発中の新機能「パラメータによるルールのカスタマイズ」。麻雀ルールのカスタマイズ(1) ~ 終局判断とポイント計算 - koba::blog に続き今回の話題は 流局処理連荘判断。これらに関わるパラメータは以下の通り。

  • 途中流局あり
  • 流し満貫あり
  • ノーテン宣言あり
  • ノーテン罰あり
  • 最大同時和了数
  • 連荘方式
続きを読む

麻雀ルールのカスタマイズ(0) ~ ルール一覧

電脳麻将 ver.2.0 開発 における目玉の一つが パラメータによるルールのカスタマイズ である。具体的なパラメータ一覧は ルール · kobalab/majiang-core Wiki · GitHub に記した通り。これらを組み合わせてカスタマイズ可能とする。

実装予定のパラメータでどこまで各種ルールに対応可能か調べてみた。ネット麻雀代表として 天鳳、競技麻雀代表として Mリーグ、古典的ルール代表として 最高位戦Classic を例にパラメータを適用した*1

*1:ただし天鳳は「ナシナシ東風戦」とした

続きを読む