Majiang
HTML5 + JavaScript で動作する麻雀アプリ「電脳麻将」
Install / Use
/learn @kobalab/MajiangREADME
HTML5 + JavaScript で動作する麻雀アプリ「電脳麻将」
<img src="dist/img/game.png" alt="ゲーム画面" width=480>デモ
https://kobalab.net/majiang/
ライセンス
作者
npm-scripts
| コマンド | 説明
|:----------------|:-------------------------------------------
| release | リリース用にビルドする。
| build | デバッグ用にビルドする。
| build:js | JavaScriptのみデバッグ用にビルドする。
| build:css | CSSのみビルドする。
| build:html | HTMLのみビルドする。
サブパッケージ
以下のサブパッケージを使って構成しています。
majiang-core
- GitHub: https://github.com/kobalab/majiang-core
- npm: @kobalab/majiang-core
手牌の操作、シャンテン数・和了点計算、局進行・卓情報の管理、思考ルーチンの雛形を含む基本クラス群です。
majiang-ai
- GitHub: https://github.com/kobalab/majiang-ai
- npm: @kobalab/majiang-ai
麻雀AIとその 開発ツール です。 AIは majiang-core のクラス Majiang.Player の具体的な実装になっています。
majiang-ui
- GitHub: https://github.com/kobalab/majiang-ui
- npm: @kobalab/majiang-ui
手牌表示、盤面表示、牌譜再生 など画面表示やユーザとのインタラクションを実現するクラス群です。
tenhou-url-log
- GitHub: https://github.com/kobalab/tenhou-url-log
- npm: @kobalab/tenhou-url-log
電脳麻将の牌譜をネット麻雀 天鳳 のJSON形式の牌譜(各種AI解析の事実上の共通フォーマット)に変換する機能を提供します。
関連パッケージ
そのほかに以下の関連パッケージがあります。
majiang-server
- GitHub: https://github.com/kobalab/majiang-server
- npm: @kobalab/majiang-server
WebSocketによる麻雀サーバーの実装です。 電脳麻将のネット対戦は本サーバに接続して実現しています。
majiang-analog
- GitHub: https://github.com/kobalab/majiang-analog
- npm: @kobalab/majiang-analog
牌譜解析ツールです。 電脳麻将形式の牌譜を解析する基底クラスを提供します。 本クラスのサブクラスを作成し、解析のためのプログラムを書くことができます。
tenhou-log
- GitHub: https://github.com/kobalab/tenhou-log
- npm: @kobalab/tenhou-log
ネット麻雀 天鳳 の牌譜を電脳麻将形式に変換します。 本パッケージを利用することで天鳳の牌譜を解析したり、再生したりすることが可能になります。 電脳麻将 牌譜ビューアの天鳳牌譜再生は本サーバに接続して実現しています。
書籍
<a href="https://www.amazon.co.jp/dp/4798067881"><img src="https://m.media-amazon.com/images/I/51DMflZaBNL._SL500_.jpg" title="対戦型麻雀ゲームAIのアルゴリズムと実装" height=240></a>
電脳麻将のプログラムを解説した書籍を出版しました。
書籍ではサブパッケージの majiang-core と majiang-ai を扱っています。
ブログ記事
書籍出版以降(ver.2.0.0以降)の情報です(カッコ内は執筆時のバージョン)。
- 思考ルーチン
- 打牌選択アルゴリズム(10) 〜 残り牌数の正規化 (v2.5)
- 押し引きアルゴリズムの改善(4) 〜 押し引き閾値の再調整 (v2.5)
- 牌の危険度計算アルゴリズム(5) 〜 危険度閾値の再調整 (v2.5)
- 牌譜エディタ
- 牌譜エディタの使い方 (v2.4)
- 電脳麻将でNAGA解析用のデータを作成する (v2.4)
- 麻雀サーバー
- 麻雀サーバーの使い方 (v2.3)
- Passportで外部認証を実現する (v2.3)
- ネット対戦の持ち時間設定方法 (v2.3)
- 麻雀ボットの実装 (v2.4)
- 偽ラグの実装 (v2.4)
- 点数計算ドリル
- 電脳麻将 ver.2.2.0 公開#点数計算ドリル (v2.2)
- 麻雀の点数計算方法(正式版・簡易版) (v2.2)
- 牌譜解析・統計
- 天鳳鳳凰卓統計(2023年) (v2.4)
- 天鳳鳳凰卓の最高・最大・最長記録 (v2.4)
- リーチ宣言牌のスジは危険? (v2.0)
- ソバテン・裏スジは危険? (v2.0)
- ダブルリーチの好形率・和了率・平均打点は? (v2.0)
- 牌の危険度決定アルゴリズムを評価する (v2.4)
- 牌の危険度決定アルゴリズムを評価する(2) (v2.4)
- 「山読み」のアルゴリズムを評価する (v2.4)
- シミュレーション
- 麻雀AIの作り方 (v2.4)
- 鳴かない麻雀の成績への影響をシミュレーションする (v2.4)
- リーチ禁止の影響をシミュレーションする (v2.4)
- コンボ理論の有用性を検証する (v2.4)
- ダマテンの効果をシミュレーションする (v2.4)
- アルゴリズム・その他
- バックトラックで麻雀の和了形一覧を求める (v2.3)
- 麻雀の「待ち」を出力するプログラム (v2.0)
- 麻雀アプリのデバッグに使える牌姿 (v2.0)
(旧)ブログ記事
過去のブログ記事。 内容はやや古いです。 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)
- 表示処理
- 電脳麻将におけるMVCの実装 (v1.5)
- 麻雀の手牌を表示するプログラム (v1.4)
- その他
- 電脳麻将のプログラム中の中国語一覧 (v0.8)
- 天鳳の牌譜形式を解析する(1) (v0.8)
- 天鳳の牌譜形式を解析する(2) (v0.8)
- 天鳳の牌譜形式を解析する(3) (v0.8)
- 天鳳の牌譜形式を解析する(4) (v0.8)
- 天鳳統計(1) 〜 基礎情報と和了役・流局理由 (v0.9)
- 天鳳統計(2) 〜 巡目ごとの向聴数・立直率・和了率 (v0.9)
- [天鳳統計(3) 〜 局終了時の牌の分布](https://blo
Related Skills
node-connect
347.6kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
108.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
347.6kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
347.6kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
