koba::blog

小林聡: プログラマです

電脳麻将 ver.1.0.0 公開

f:id:xlc:20190420204452p:plain:w240:right

電脳麻将ver.1.0.0 にバージョンアップしました。

npm対応のパッケージになったので、ソースからビルドするには Node.jsnpm が必要です。

機能面では以下を変更しています。

  • 画面表示/UIを改善
  • ネット上の牌譜を読み込む機能を追加
  • 天鳳形式の牌姿文字列は廃止、電脳麻将形式に統一
  • IEに対応*1

Node.js 対応

フロントエンド開発の環境構築 - koba::blog で環境構築してからもうすぐ2年。ようやくNode.js対応が完了しました。これでブラウザを使わずに牌譜解析やAI同士の自動対戦をできるようになりました。

ソースからのビルド手順は以下の通りです。

GitHubから最新のソースを取得・展開する。

$ curl -L https://github.com/kobalab/Majiang/archive/master.tar.gz | tar xvfz -
$ cd Majiang-master

関連パッケージをインストール

$ npm install

リリース用にビルド

$ npm run release

ブラウザで ./www/index.html を開く。

画面表示/UIを改善

牌譜ビューアのUIを改善しました。すべての操作をキーボードで代替できます。

再生終了 q または esc
集計表示 ?
音声ON/OFF a
前局へ
次局へ
戻る
進む ↓ または retuen
配牌に戻る shift + ↑
結果に進む shift + ↓
自動再生ON/OFF space
速度- (速く) -
速度+ (遅く) +
手牌表示ON/OFF 手牌を
クリック
s
ツモ切り表示ON/OFF 河を
クリック
h
視点変更 対局者名を
クリック
v

打牌時のツモ切り表示も以前より見やすくなったと思います。

ネット上の牌譜を読み込む機能を追加

ネット上の牌譜を読み込んで再生する機能を追加しました。

を再生する場合は、

とすればよいです。*2

以下のような形式で視点、局数も指定できます。

天鳳形式の牌姿文字列は廃止、電脳麻将形式に統一

m1m2m3p4p5p6s7s8s9z1z1z1z7z7

の手牌を、天鳳では 123m456p789s11177z と表現しますが、電脳麻将では m123p456s789z11177 と逆になります。麻雀の手牌の文字列表現 - koba::blog にしたがい、

m1m2m3p1p2p3z1 z1 z2z2-z2 s1-s2s3

m123p123z1z1,s1-23,z222= と表現します。*3

IEに対応

Babel の導入により、IEでもなんとか動作するようになりましたが、以下の制限があります。

  • AIは古いバージョン (ver.0.6) の思考ルーチンです*4
  • 音声は鳴りません*5
  • 牌譜のダウンロードはできません*6
  • キーボードでは操作できません*7

*1:ただし機能には制限があります

*2:クロスドメインでの再生はできないので相対パスでの指定になります

*3:天鳳での副露の表現方法は不明

*4:IEJavaScriptの速度が遅く最新のAIでは時間がかかり過ぎるため

*5:IEはwav形式非対応のため

*6:IEはdownload属性非対応のため

*7:IEJavaScriptの実装が古いため