この書籍は作者のブログ内の記事を元にしてこの本のために書き直したものです。タイトルからは三目並べ限定の内容のような印象を与えますが、ブログ内にバラバラに散らばっている内容を纏めて「二人零和有限確定完全情報ゲーム」に分類されるゲーム全般に通じるアルゴリズムについて書いたものです。その中でおそらく最も作るのが簡単であろう三目並べ(◯×ゲーム、Tic-tac-toe)を例にして、実際に動くプログラムについて解説しています。ブログ記事の内容と重複するところもありますが、ブログ記事では省略しているプログラム全体の解説を追加しました。ここに書かれている内容の多くはオセロゲームや将棋のプログラムを作成する場合にも共通していることですが、作者の経験から分かる範囲でそれぞれの違いなどについても触れています。
プログラミング言語としてCoffeeScriptを使っていますが決してCoffeeScriptの学習本ではなく、HTML5についてもCoffeeScriptについても、このプログラムで使用している範囲で解説しています。CoffeeScriptというのは「JavaScriptの代替プログラミング言語(AltJS)」と呼ばれる言語で、コンパイルするとJavaScriptに変換されます。ですからブラウザさえあればMacでもWindowsでもLinuxでも多くのモバイル端末でも動かすことが出来ます。但し、HTML5の機能を使用していますので古いブラウザだと動かないかもしれません。
- はじめに
- プログラムの入手方法と動作環境
- 開発環境について
- 対戦型三目並べプログラムに必要な機能
- 先読みアルゴリズムについて
- 先読みアルゴリズムの実装
- CoffeeScript(JavaScript)特有の問題
- 最短手順で勝つとは限らない
- プログラムの解説
- リファクタリング
- 終わりに
本編のソースファイルはgithubから取得出来ますが、リファクタリング後のNegaMax法のサンプルコードはこの本のみに収録する形にしました。