HTML5 + JavaScript で動作する麻雀アプリ「電脳麻将」
コマンド | 説明 |
---|---|
release |
リリース用にビルドする。 |
build |
デバッグ用にビルドする。 |
build:js |
JavaScriptのみデバッグ用にビルドする。 |
build:css |
CSSのみビルドする。 |
build:html |
HTMLのみビルドする。 |
以下のサブパッケージを使って構成しています。
- GitHub: https://github.com/kobalab/majiang-core
- npm: @kobalab/majiang-core
手牌の操作、シャンテン数・和了点計算、局進行・卓情報の管理、思考ルーチンの雛形を含む基本クラス群です。
- GitHub: https://github.com/kobalab/majiang-ai
- npm: @kobalab/majiang-ai
麻雀AIとその 開発ツール です。 AIは majiang-core のクラス Majiang.Player の具体的な実装になっています。
- GitHub: https://github.com/kobalab/majiang-ui
- npm: @kobalab/majiang-ui
手牌表示、盤面表示、牌譜再生 など画面表示やユーザとのインタラクションを実現するクラス群です。
- GitHub: https://github.com/kobalab/tenhou-url-log
- npm: @kobalab/tenhou-url-log
電脳麻将の牌譜をネット麻雀 天鳳 のJSON形式の牌譜(各種AI解析の事実上の共通フォーマット)に変換する機能を提供します。
そのほかに以下の関連パッケージがあります。
- GitHub: https://github.com/kobalab/majiang-server
- npm: @kobalab/majiang-server
WebSocketによる麻雀サーバーの実装です。 電脳麻将のネット対戦は本サーバに接続して実現しています。
- GitHub: https://github.com/kobalab/majiang-analog
- npm: @kobalab/majiang-analog
牌譜解析ツールです。 電脳麻将形式の牌譜を解析する基底クラスを提供します。 本クラスのサブクラスを作成し、解析のためのプログラムを書くことができます。
- GitHub: https://github.com/kobalab/tenhou-log
- npm: @kobalab/tenhou-log
ネット麻雀 天鳳 の牌譜を電脳麻将形式に変換します。 本パッケージを利用することで天鳳の牌譜を解析したり、再生したりすることが可能になります。 電脳麻将 牌譜ビューアの天鳳牌譜再生は本サーバに接続して実現しています。
電脳麻将のプログラムを解説した書籍を出版しました。
書籍ではサブパッケージの majiang-core と majiang-ai を扱っています。
過去のブログ記事。 内容はやや古いです。 ver.2.0.0 のプログラムの情報は 書籍 をご覧ください。 カッコ内は執筆時のバージョンです。
- プログラム構成
- 電脳麻将のプログラム構成(0) ~ 全体編 (v1.4)
- 電脳麻将のプログラム構成(1) 〜 JavaScript編 (v1.4)
- 電脳麻将のプログラム構成(2) 〜 HTML/CSS編 (v1.4)
- 手牌などのデータ構造
- 麻雀の手牌のJavascript表現 (v0.2)
- 麻雀の手牌の文字列表現 (v0.2)
- 牌山と河のデータ構造 (v1.4)
- 電脳麻将の牌譜形式 (v0.3)
- シャンテン数計算
- 向聴数を求めるプログラム(七対子・国士無双編) (v0.2)
- 向聴数を求めるプログラム(一般手編(再)) (v0.2)
- 向聴数を求めるプログラム(一般手編(再々)) (v0.2)
- 向聴数を求めるプログラム(修正版) (v0.9)
- 和了点計算
- 麻雀の和了点を計算するプログラム (v0.3)
- 麻雀の和了点の計算 ~ 状況役と懸賞役の一覧を作る (v0.3)
- 和了形を求めるプログラム(特殊形) (v0.3)
- 和了形を求めるプログラム(一般形) (v0.3)
- 麻雀の符を求めるプログラム (v0.3)
- 麻雀の役を判定するプログラム(再) (v0.3)
- 麻雀の和了点を計算するプログラム(最終回) (v0.3)
- ゲーム進行
- 麻雀の局進行のプログラム方式 (v0.3)
- 麻雀の局進行のプログラム実装 (v0.3)
- 麻雀の局進行の状態遷移 (v0.3)
- 麻雀ルールのカスタマイズ(0) ~ ルール一覧 (v2.0)
- 麻雀ルールのカスタマイズ(1) ~ 終局判断とポイント計算 (v2.0)
- 麻雀ルールのカスタマイズ(2) ~ 流局処理と連荘判断 (v2.0)
- 麻雀ルールのカスタマイズ(3) ~ 赤牌とドラ (v2.0)
- 麻雀ルールのカスタマイズ(4) ~ 和了役と点計算 (v2.0)
- 麻雀ルールのカスタマイズ(5) ~ 打牌制約 (v2.0)
- 思考ルーチン
- 麻雀AIのプログラム構造 (v0.4)
- 麻雀の打牌選択アルゴリズム(1) (v0.4)
- 麻雀の打牌選択アルゴリズム(2) (v0.4)
- 麻雀の打牌選択アルゴリズム(3) (v0.4)
- ベタオリのアルゴリズム (v0.5)
- 麻雀の副露判断アルゴリズム(1) (v0.6)
- 麻雀の副露判断アルゴリズム(2) (v0.6)
- 麻雀の副露判断アルゴリズム(3) (v0.6)
- 麻雀の副露判断アルゴリズム(4) (v0.6)
- 麻雀の打牌選択アルゴリズム(4) (v0.9)
- 麻雀の打牌選択アルゴリズム(5) (v0.9)
- 麻雀の打牌選択アルゴリズム(6) (v0.9)
- 麻雀の打牌選択アルゴリズム(7) (v0.9)
- 麻雀の打牌選択アルゴリズム(8) (v0.9)
- 麻雀の副露判断アルゴリズム(5) (v0.9)
- 麻雀の打牌選択アルゴリズム(9) (v0.9)
- 押し引き表の牌姿は評価値何点? (v1.5)
- 押し引きアルゴリズムの改善(1) (v1.5)
- 押し引きアルゴリズムの改善(2) (v1.5)
- 押し引きアルゴリズムの改善(3) (v1.5)
- 天鳳鳳凰卓の牌の危険度表 (v1.6)
- 牌の危険度計算アルゴリズム(1) (v1.6)
- 牌の危険度計算アルゴリズム(2) (v1.6)
- 牌の危険度計算アルゴリズム(3) (v1.6)
- 牌の危険度計算アルゴリズム(4) (v1.6)
- 表示処理
- 麻雀の手牌を表示するプログラム (v1.4)
- その他
- 電脳麻将のプログラム中の中国語一覧 (v0.8)
- 天鳳の牌譜形式を解析する(1) (v0.8)
- 天鳳の牌譜形式を解析する(2) (v0.8)
- 天鳳の牌譜形式を解析する(3) (v0.8)
- 天鳳の牌譜形式を解析する(4) (v0.8)
- 牌画入力ツール (v0.7)
- 電脳麻将で天鳳の牌譜を検討する (v1.4)
- デュプリケート麻雀の実装 (v1.5)
ゲームで使用している牌画像は 麻雀の画像・素材、 音声は 天鳳用オリジナルSE: アンコロキングblog のものを使用させていただいてます。