それよりも強くするには、どうしたら良いのか、かなり悩みました。
「相手がココに置いたら、こうする」なんて考えていたら、パターンが多すぎてキリがありません。
(IF
文ばかりになってしまいそうで、収集つかなくなりそうな感じでした。中々考えがまとまりませんでした)
検討の結果、「置ける位置全てを置いた後の盤を評価し、得点を計算する」方法を考えました。
この考えも、多くのプログラマーが簡単に実現できることでしょう。
次のようなテーブルを用意します。
※下記の得点はあくまでも一例です。
上記の例で言えば、
隅に石があったら、+60点
隅の隣(オレンジ)に石があったら、-10点
・・・と言った具合に盤の石の位置を評価値として累計する仕組みです。
人間側の石の評価得点とコンピュータ側の評価得点を計算します。
※隅以外全てゼロとマイナス得点となっているのは、石を多く置いた方が、得点が低くなるというようにするためです。
コンピュータの得点−人間の得点 =
評価とします。
※もちろん、「置いてから」と言っても画面の表示上は置いていませんよ。内部での処理の話です。
この評価が一番高い箇所に石を置く(打つ)ようにします。