電脳麻将V2開発状況

年末なので 電脳麻将改造中 - koba::blog で紹介した ver.2.0(V2 と呼ぶことにします)の開発状況を振り返っておきます。

パッケージ構成

従来のスタンドアロン型*1とクライアント/サーバ型のコードを共通化するため、機能を部品化し、以下のサブパッケージに分解しました。

パッケージ名 機能
@kobalab/majiang-core 描画部分とと思考ルーチンを除いた基本機能
@kobalab/majiang-ui JavaScriptによるDOM操作とイベントハンドラ
@kobalab/majiang-ai 思考ルーチンとAI開発環境
@kobalab/majiang-analog 牌譜解析ツール
@kobalab/majiang-server 麻雀サーバ

全体を統合するコードとHTML/CSSは従来の リポジトリ が継続して担当します。

majiang-core

手牌の操作、シャンテン数・和了点計算、局進行・卓情報の管理、思考ルーチンの雛形を含む基本クラス群です。ほぼ完成しており、API仕様も公開しています。ルールをカスタマイズ 可能とする修正も加えました。麻雀クライアントが使用することも想定し、不完全な情報*2があっても手牌の操作ができるよう改造しています。

majiang-ui

作成中です。卓情報の表示まではできており、AI同士の対戦であれば既に表示できるようになっています。現在は人間のプレーヤー用のUIの再実装中です*3。牌譜ビューアなどツール類の再実装は未着手です。V2では VoiceOver のような読み上げソフト使用時でも操作可能とすることを目指しています。キーボードのみで操作できるようにも改造中です。

majiang-ai

作成中です。過去の思考ルーチンを順次再現 しているのですが、ようやく ver.0.6 相当の思考ルーチンまでたどり着いたところです。パッケージにはAI同士の デュプリケート対局麻雀 定石「何切る」301選 を解かせるスクリプトなどデバッグ用機能も含みます*4

majiang-analog

牌譜解析ツール をスピンオフし、独立したパッケージとしました。牌譜形式は従来から変更ないので既に使用可能です。

majiang-server

残念ながら未着手です😭

今後の計画

本来はこの年末でのリリースを目論んでいたのですが、途中半年くらい開発を中断した時期もあり、大幅に遅れています。3月くらいを目途にスタンドアロン版の完成、8月くらいを目途に麻雀サーバを実装できればと思っています。

それでは皆様、よいお年を。

*1:サーバ側は静的コンテンツのみでクライアント側のJavaScriptで動作する現在の方式

*2:例えば伏せられている相手の手牌など

*3:副露メンツ選択のUIの改造中

*4:従来は非公開でした