「電脳麻将本」出版

電脳麻将 ver.2.0.0 公開 - koba::blog でも紹介した書籍が、12月23日に出版されることになりました。

内容は 電脳麻将 のプログラム解説になっており、各章*1で以下の内容を説明しています。

タイトル 内容
東一局イントロダクション「概要」的な話
東二局0本場手牌の表現 クラス Majiang.Shoupai
1本場手牌の操作
2本場シャンテン数計算 Majiang.Util の シャンテン数計算 部分
東三局和了点計算 Majiang.Util の 和了点計算 部分
東四局0本場ゲーム進行の概要 クラス Majiang.Game
1本場ゲーム進行の実装
2本場牌山と河の実装 クラス Majiang.ShanMajiang.He
南一局0本場麻雀AIのプログラム構造 クラス Majiang.Player
1本場リーチのAI 麻雀AI 0001 / 0002 / 0003 / 0004
南二局0本場ベタオリのAI 麻雀AI 0101 / 0102
1本場鳴きのAI 麻雀AI 0201 / 0202
南三局0本場手作りのAI 麻雀AI 0301 / 0302 / 0303 / 0304 / 0305
南四局0本場押し引きのAI 麻雀AI 0401 / 0402 / 0403
および 0501 / 0502 / 0503 / 0504

【東場】がパッケージ majiang-core の解説、【南場】が主にパッケージ majiang-ai の解説になっています*2。【西場】と題した付録もあり、その中で tenhou-logmajiang-analog にふれています*3。過去にブログで扱った内容も多いですが、本書のために文書をわかりやすく書き直し、場合によってはプログラムも変更しました*4

電脳麻将を構成するパッケージには majiang-ui もあるのですが、これは表示系のプログラムで、しかも「オワコン」と言われがちな jQuery を使って実装しているので本書では扱いませんでした。ですが、ここにも面白い話題はあるのでブログで扱おうかなと考えています*5

*1:編集者の発案で【東一局0本場】のような名称になっています

*2:南一局 0本場だけは majiang-core の内容

*3:プログラム解説はなく、使い方の説明をしています

*4:そもそもブログ記事は書かれた時期によっては今のプログラムと相当乖離が発生しています

*5:ここにVoiceOver対応の実装もする計画ですし