| Javaゲーム4作目は、オセロゲームを作ってみました。ご存知とは思いますが、黒のコマと白のコマを交互に打っていき、相手のコマを自分のコマで挟んだら自分の色に変えることができて、最後にどちらの数が多いかを競うゲームです(こんなやつ↓)。
オセロゲームで遊んでみる場合はこちらです⇒オセロゲーム
オセロ盤の画像が表示されて全然動かない場合は、ブラウザがJavaに対応していない可能性があります。ウイルス対策ソフトやセキュリティの設定で開けない場合は、Javaのコンテンツを許可すれば見れると思います。
画像がグレーになって動かない場合は、Javaのバージョンが古い可能性があります。その場合、「java.com」から、最新バージョンのものをダウンロード、インストールすれば見ることができます。
今までのパズルゲームやブロック崩しは、プレイヤーが操作したとおりの動きをするだけでしたが、オセロゲームの場合は、コンピューターに戦略を考えさせる必要があります。
私はそんなにオセロの戦略に詳しいわけではないので、
・隅を取れるときは隅を取る。
・隅を取られないように、隅の隣のマスには極力打たない。
・なるべくたくさんひっくり返す。
という程度しか思いつきませんでした。が、これだけでもプログラムにするのはわりと大変で、ちょうどいい練習になりました。
アルゴリズムとしては、各マスの状態を表すため、
0 : 何も置かれていない。
1 : 黒が置かれている。
2 : 白が置かれている。
のいずれかの値を持つ、要素数64の配列を準備しておいて、コンピューターの番のときは、値が0の全てのマスに対して、そこにコマを置くといくつひっくり返せるかを計算させます。その値に、隅であればプラス、隅の周辺であればマイナスする補正を加えて、もっとも得点が高いところに打つようにしています。
先読みはさせていません(というか、どういうアルゴリズムにすれば強くなるのかよく分からない(TT))ので、そんなに強くはないです(--;)
今回のプログラムのソースは約500行でした。Javaのプログラムを作るのも4つ目なので、基本的な作り方はわりと慣れてきましたが、コンピューターの戦略のところで色々とミスがあってデバッグに苦労したので、結局3週間くらいかかりました(><)
次は、そろそろオリジナルゲーム第1弾として、脱出ゲームにでも挑戦してみようと思います(^^) |