三目並べにミニマックス法を実装(作り込み)しました。アプレットをTic_tac_toe1_10として公開します。Small Basicではローカル変数がないため、変数を壊さないようPushとPopでセーブ、リストアしていましたが、Javaではローカル変数や引数を使って再帰呼び出しの処理が簡単に実現できました。

【図12 Tic-tac-toe v1.10の画面】
また、今回はボタンに対し、setEnabledメソッドを呼ぶようにし、ゲーム終了まで操作できないようにしました。
三目並べのプログラムとして、いくつか気になる点があります。
・Small Basicの三目並べと違う手を打ちます。Small Basicのプログラムに何か違う所がありそうです。
・画面の再描画で一部描き直されない部分があります。いずれ調べようと思います。
が、一応完成ということで、三目並べのプログラミングは今回で終了することにします。
ところで、前回と今回、ドキュメントを作成するjavadocコマンドにおいてエラーが発生しました。
java.lang.NullPointerException at com.sun.tools.doclets.formats.html.PackageUseWriter.generatePackageUse(PackageUseWriter.java:180)
このメッセージをウェブブラウザで検索したところBug ID 6442980というJavaのバグであることが分かりました。検索したオラクルのバグデータベースによるとjavadocで-useオプションを使うと起きるバグで、回避策は-useオプションを使わないことだそうです。このオプションはEclipseから呼び出す場合、下図の「使用ページの生成」に対応しています。このオプションをオフにします。

【図13 Javadoc「使用ページの生成」をオフに】
プログラミングに限ったことではないですが、意味不明のエラーメッセージが表示されたときは、そのメッセージをウェブブラウザで検索すると、詳しい説明を得られることがままありますので、試してみてください。
次回はJavaのサウンドについて説明します。
(つづく)
