今、かなり以前(C言語を勉強し始めた頃)に作っていたリバーシのプログラムを時間を見つけては組みなおしてるんですよ。
基本的な修正箇所は…
1:C言語らしくない部分の全面見直し(なんだかBASICみたいな組み方してました(笑))
2:置ける場所の検索ルーチンを再帰関数に置き換えてスマートな処理を目指す。
3:CPUのアルゴリズムの強化
という予定にしているんですよ。まぁ、ぶっちゃけ全部作り直した方が早い気もしますね(笑)
この中でも、1番ネックになりそうなのが3番目なんですよね。定石とか紹介されているページも見たりはしたのですが、いまいち規則性を見出だせなくて…(;^_^A
自分自身、リバーシに関しては初心者なので、どうすればCPUが強くなるのか分からないんですよね。
ちなみに今の時点でのアルゴリズムは、4角と確定箇所(絶対に取られない場所)を最優先して、あとはランダムという極めていい加減なものなので弱いです(笑)
何か、このポイントを押さえておけば強くなるようなものがあれば、是非教えてもらえないでしょうか?
リバーシのアルゴリズム
Re:リバーシのアルゴリズム
私もリバーシは強くないのでアレですがw
>ちなみに今の時点でのアルゴリズムは、4角と確定箇所(絶対に取られない場所)を最優先して、あとはランダムという極めていい加減なものなので弱いです(笑)
ランダム抽選の箇所を一番多くひっくり返せるor次に相手が置かれてもひっくり返される数が最も少なくなる所に置く。
という方式に変えれば多少マシになるのではないでしょうか・・・?
>ちなみに今の時点でのアルゴリズムは、4角と確定箇所(絶対に取られない場所)を最優先して、あとはランダムという極めていい加減なものなので弱いです(笑)
ランダム抽選の箇所を一番多くひっくり返せるor次に相手が置かれてもひっくり返される数が最も少なくなる所に置く。
という方式に変えれば多少マシになるのではないでしょうか・・・?
Re:リバーシのアルゴリズム
もし、「ミニマックス法」や「αβ法」というキーワードについて
ご存じでなければ、調べてみてはいかがでしょうか。
すでにご存じでしたら申し訳ありません。
ご存じでなければ、調べてみてはいかがでしょうか。
すでにご存じでしたら申し訳ありません。
Re:リバーシのアルゴリズム
返信有難うございます(^-^)
色々なところで紹介されているんですねぇ…ちゃんと調べてから書くべきでした(^_^;)
何箇所かを覗いてみての感想なんですが、結局は『先読み』と『マス評価』の2点につきるようですね。
このマス評価というのが曲者でして、どこを高く評価するかというの部分は作り手に依存してしまうという事みたいなんですよ。
という事は、私がいくら頑張ってもある程度のものにしかならない…と(苦笑)
まぁ、それなりに遊べるようになったら、管理人さんにアップロードしてもらおうかと思っていますので、その時が来たら、よかったら遊んでみてくださいm(_ _)m
色々なところで紹介されているんですねぇ…ちゃんと調べてから書くべきでした(^_^;)
何箇所かを覗いてみての感想なんですが、結局は『先読み』と『マス評価』の2点につきるようですね。
このマス評価というのが曲者でして、どこを高く評価するかというの部分は作り手に依存してしまうという事みたいなんですよ。
という事は、私がいくら頑張ってもある程度のものにしかならない…と(苦笑)
まぁ、それなりに遊べるようになったら、管理人さんにアップロードしてもらおうかと思っていますので、その時が来たら、よかったら遊んでみてくださいm(_ _)m