オセロ(リバーシ)プログラム実装 ~理論による評価~

タイトル:オセロ(リバーシ)プログラム実装 ~理論による評価~

このサイトでは、C言語でのオセロ(リバーシ)のプログラム開発方法を解りやすく説明しています。初級者、初心者でも作れるオセロ実装のコツが満載です。

もちろん、石の位置だけでは強いプログラムは作れません。強いプログラムを作るには、様々な多くの評価アルゴリズムを導入する必要があります。ここでは一般的なアルゴリズムの説明を行います。

着手可能数による評価

一般に、着手可能な手が多い方が、好手のある可能性が高いと言うのは既に述べました。

この考えは、先ほどの重み付けと比較すると、より盤面を大域的にみた方法だといえます。

気を付けなければならないのは、評価している盤面が、「自分の手番か、相手の手番か」ということです。 相手の手番の時に評価を行っているのならば、逆に着手可能手数が少ない方が良いはずです。

辺、隅による評価

実際、確定石の実装は難しいようです。また、都度計算するのは時間が掛かる為あまり効率の良いものとは言えません。

確定石の計算は「辺の回り」だけで良いと思います。それだと速く、そして実装が簡単になります。ただ、弱い相手や強い相手と戦うと、悪手を打つことがあるようですが…。

辺の確定石の数計算方法

  • まず石が隅に1つでもあるか調べる。(無ければ確定石は無い)
  • 隅に石がある&自分の石であれば、そこから辺の石の連続は確定石。
  • 相手の石&両隅に石があるのであれば、その間の隅は確定石。

また、このアルゴリズムに、隅に石の無い辺の場合

  • 石を数えて、辺に6つ同じ色の石があれば、「山」。
  • 石を数えて、辺に5つ同じ色の石があれば、「ウィング」。
  • 1つしか無い&その石はC打ち&隣のB、Aが空いている場合は単独C打ち

などと定義して加えておけば、一度に辺の評価も出来ます。

オススメ書籍

オセロに強くなりたい人は下記を読むことをお勧めします。

楽天市場で買う 楽天市場で買う 楽天市場で買う 楽天市場で買う

オセロ(将棋等)のプログラムを開発したい人・ゲームプログラマーになりたい人は下記は持っていて損はないでしょう。

楽天市場で買う 楽天市場で買う 楽天市場で買う 楽天市場で買う

ページの先頭へ移動

このページの人気コンテンツ

    Copyright ©2024 .(since 2001/11/18)