オーラス麻雀ゲーム開発日記構想から現在までの開発記録を、公開順にまとめています。

前回までの進捗
前回は、流局したときの4人の手牌からシャンテン数を計算し、テンパイしているプレイヤーを自動判定できるようにした。
ここまででツモ・打牌・流局まで対局を進められるようになったが、CPUの打牌はまだ単純なツモ切りだけ。
今回は、CPUが手牌を考えて打牌できるようにするための準備として、麻雀AIライブラリを導入する。
麻雀AIライブラリを追加する
これまで麻雀の牌山や手牌の処理には@kobalab/majiang-coreを使ってきた。
今回は新たに、
@kobalab/majiang-ai
を追加した。
このライブラリには麻雀を打つAIプレイヤーが用意されているため、今後は自分でCPUの思考ロジックを一から作らずに対局へ組み込める。
AIプレイヤーを作れるようにする
まずは、AIプレイヤーを1人生成する処理を用意した。
さらに、自分以外の3人をCPUとして使うことを想定して、3人分のAIプレイヤーをまとめて生成できるようにした。
プレイヤー
CPU
CPU
CPU
という構成へつなげるための準備になる。
ライブラリを直接使わない形にする
麻雀本体のライブラリと同じように、AIについてもアプリのあちこちから直接呼び出すのではなく、専用の処理を間に挟む形にした。
アプリ
↓
AI用の処理
↓
majiang-ai
こうしておけば、今後AIの使い方を変える場合でも影響する範囲を抑えやすい。
AIを生成できるかテストする
この段階では、まだAIに実際の対局を打たせてはいない。
まずは、
- AIプレイヤーを生成できる
- AIが行動用の処理を持っている
- 3人のAIを別々のプレイヤーとして生成できる
ことをテストした。
いきなり現在の対局処理へ組み込むのではなく、まずライブラリを問題なく扱えることを確認してから先へ進める。
今回できたこと
今回の進捗は以下のとおり。
- 麻雀AIライブラリを導入した
- AIプレイヤーを生成できるようにした
- CPU用に3人のAIを生成できるようにした
- AIライブラリを扱うための処理を分離した
- AI生成のテストを追加した
まだCPUの打牌がAIに置き換わったわけではないが、これで本格的な麻雀AIを対局へ組み込むための準備ができた。
次回は、AIプレイヤーを4人用意して実際に1局を最後まで進行させ、和了または流局まで自動で完走できるか確認する。
進捗キャプチャも取れないくらい裏方はモチベが保ちづらいし、文章も起こしづらい。牛一。
コメント