電脳麻将 ver.2.0.0 公開 - koba::blog でも紹介した書籍が、12月23日に出版されることになりました。
内容は 電脳麻将 のプログラム解説になっており、各章*1で以下の内容を説明しています。
章 | タイトル | 内容 | |
---|---|---|---|
東一局 | イントロダクション | 「概要」的な話 | |
東二局 | 0本場 | 手牌の表現 | クラス Majiang.Shoupai |
1本場 | 手牌の操作 | ||
2本場 | シャンテン数計算 | Majiang.Util の シャンテン数計算 部分 | |
東三局 | 和了点計算 | Majiang.Util の 和了点計算 部分 | |
東四局 | 0本場 | ゲーム進行の概要 | クラス Majiang.Game |
1本場 | ゲーム進行の実装 | ||
2本場 | 牌山と河の実装 | クラス Majiang.Shan と Majiang.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-log と majiang-analog にふれています*3。過去にブログで扱った内容も多いですが、本書のために文書をわかりやすく書き直し、場合によってはプログラムも変更しました*4。
電脳麻将を構成するパッケージには majiang-ui もあるのですが、これは表示系のプログラムで、しかも「オワコン」と言われがちな jQuery を使って実装しているので本書では扱いませんでした。ですが、ここにも面白い話題はあるのでブログで扱おうかなと考えています*5。