電脳麻将改造中

4月から 電脳麻将 の次期バージョン(ver.2.0 とする予定)への改造作業を開始しています。

が主な予定改造項目です。

ネット対戦機能

socket.io を使用してネット対戦できるようにする計画です。現在は局進行プログラムと対局者プログラムがともにブラウザ上にあり、互いにメソッド呼び出しすることで局を進行させていますが、これをサーバー側とブラウザ側に分離し、WebSocketで通信するように変更します。サーバ・クライアントモデルにすることでも多くの変更が必要ですが、それよりも面倒なのは表示方法の変更です。今までは局進行側の「神視点」*1から一部を隠して表示するという方法だったのですが、ネット対戦型の場合はそもそもブラウザ側は他の対局者の手牌情報は副露された部分しか持っていないので、そのような不完全な状態でも卓を描画する必要があります。現在のプログラムは不完全な手牌を表現できないので、それができるように改造が必要となります。

ルール変更対応

現在の電脳麻将のルールはほぼ天鳳準拠*2で、変更可能なのは赤牌の枚数だけですが、それ以外のルールもパラメータ化し競技麻雀的なルールでも動作するようにします。パラメータ一覧は こちら にある通りです。

不正な牌姿への対応

現在の電脳麻将のプログラムでは多牌や少牌になるような操作がエラーとなるのですが、それでは実際に少牌となった対局の牌譜を再生できません*3。不正な牌姿となるような操作*4も許容するよう修正します。

バリアフリー対応

アクセシビリティ改善の検討 · Issue #89 · kobalab/Majiang · GitHub でバリアフリー化の検討中です。ここでの成果を取り込みたいと考えています。


現在は基盤となる部分を @kobalab/majiang-core としてモジュール化する作業をしています。さらに卓描画機能や麻雀AIも個別にモジュール化し、ブラウザ版とネット対戦版の電脳麻将で共有できるようにプログラム構造を変更する計画です。年内には公開したいと考えています。

*1:すべての対局者の手牌も、牌山の中身も実は見えている

*2:ダブル役満の扱いや延長戦サドンデスの方法など微妙な違いがあります

*3:Mリーグですら少牌は発生しますからね

*4:ツモる前に打牌→少牌になるなど