オセロの探索(深さ優先探索)について
Posted: 2011年7月18日(月) 04:03
立て続けに質問ごめんなさい。学生Aです。
また、オセロの話題に戻るのですが…
やはり、http://dixq.net/forum/viewtopic.php?f=3 ... ナンスが大変だと思い、
http://hp.vector.co.jp/authors/VA015468 ... クトを作り直しました。
AI以外は、結構うまく作れましたが、探索のところでつっかえてしまいました。
プロジェクトファイル↓ ダウンロードパス「otl」
http://www1.axfc.net/uploader/Sc/so/256123
問題は、このプロジェクトファイルの「computer.cpp」の「computer_think_main」関数で、これを「main.cpp」から呼ぶときに、n=0以外を引数にして呼ぶと、評価値に変なゴミみたいなものが入ります。
main.cppでcomputer_think_main(&ban[0],1);と書いた場合
4,3に置いた後、自作のdebug関数で、hyoukatiを調べると、評価し終わった後のhyoukatiが
となります。
中段の53と46は想定の動作なのですが、右下の45,36が問題で、ここは本来は盤面の外を表すために付加した領域で、-1000以外の評価値が入ることは許されない領域です。なぜこのようなゴミデーターがはいってしまうのでしょうか。
また、もう一つ質問があるのですが、探索関数はこのような方針で間違っていないでしょうか。間違っていたら指摘お願いします。
また、オセロの話題に戻るのですが…
やはり、http://dixq.net/forum/viewtopic.php?f=3 ... ナンスが大変だと思い、
http://hp.vector.co.jp/authors/VA015468 ... クトを作り直しました。
AI以外は、結構うまく作れましたが、探索のところでつっかえてしまいました。
プロジェクトファイル↓ ダウンロードパス「otl」
http://www1.axfc.net/uploader/Sc/so/256123
問題は、このプロジェクトファイルの「computer.cpp」の「computer_think_main」関数で、これを「main.cpp」から呼ぶときに、n=0以外を引数にして呼ぶと、評価値に変なゴミみたいなものが入ります。
main.cppでcomputer_think_main(&ban[0],1);と書いた場合
4,3に置いた後、自作のdebug関数で、hyoukatiを調べると、評価し終わった後のhyoukatiが
-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
-1000,-1000,-1000,53,-1000,46,-1000,-1000,-1000,-1000,
-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,45,36,
中段の53と46は想定の動作なのですが、右下の45,36が問題で、ここは本来は盤面の外を表すために付加した領域で、-1000以外の評価値が入ることは許されない領域です。なぜこのようなゴミデーターがはいってしまうのでしょうか。
また、もう一つ質問があるのですが、探索関数はこのような方針で間違っていないでしょうか。間違っていたら指摘お願いします。