« オセロゲームを作る!基本動作を考える | トップページ | オセロゲームを作る!序盤戦 »

2013/04/13

オセロゲームを作る!終盤の全読みロジック

30年前だとラスト10手くらいしか読めなかったが、今のCPUだとどこまでいけるか・・・。

終盤ロジックは単純で打ち手を全部ためして一番多く取れる手を選択するだけ。

一番多くと言っても自分の番のときの話で、相手は相手で一番多く取れるように打ってくる。

Othe14

図のようになる。

一番下から最終手が白だとすると白、黒ともに自分が一番多く取れるようにたどっていく。(赤い線)

やってみたら、ラスト12手の探査に20秒くらい、ラスト13手だと2、3分。ちょっと実用的ではない。
ラスト13手の候補の数 x 20秒くらい(ラスト12手の時間)探査にかかるとすると、3手以内の場合だけ全読みをするとか調整が必要かも。

30年前の時は探査途中で中断するロジックを入れていたような気がするけど、思い出せない。

相手の色の時(図だと白の時)、その時点の最多コマ数を下回るコマ数が出たときに探査を中断してもいい気がする。
試に組み込んでみたらラスト14手全読みが20秒くらいでできた。

ロジックに間違えがないかちと自信がないが・・・。

自分の色の探索中も中断できないかな。

<追記>
探索中断を効率よく行うために、盤に優先順をつけてよさげな位置から探索するようにした。
平たく言うと4つ角から探索、そのあと辺を探索。

|

« オセロゲームを作る!基本動作を考える | トップページ | オセロゲームを作る!序盤戦 »

プログラミング」カテゴリの記事

オセロ」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: オセロゲームを作る!終盤の全読みロジック:

» オセロゲームを作る!序盤戦 [ヴァルヘルのソフト開発日記]
 適当にコマを打ってたくさん棋譜データをためればいいかと思ったが、1分に10件く [続きを読む]

受信: 2013/04/14 21:16

» オセロゲームを作る!終盤の全読みロジックその2 [ヴァルヘルのソフト開発日記]
 やっと20万~30万手くらいのデータがたまった。  週に1回ペースでディスクク [続きを読む]

受信: 2013/06/17 00:17

« オセロゲームを作る!基本動作を考える | トップページ | オセロゲームを作る!序盤戦 »