むしろ帰ってくるのは分かってた、という感じっす。
分かっていたとしても帰ってきてくれると嬉しいもんっすね。
どうもぺんぎんっす( ◎v◎ )
リバーシのAIの話っすよ。
何か別なことを想像したりしてないっすか?
再帰呼び出しで探索をしてたんっすけど、returnされてこなかったっす。
予想通り無限ループが発生してたっす。
簡単に説明すると、盤面を走査してるときに同じ場所ばっかり調べてたっす。
iとjでそれぞれタテとヨコを調べてるっす。
ループで回してるっすから、これでナナメも走査できるっす。
for(i = -1; i <= 1; i++)
{
for(j = -1; j <= 1; j++)
{
その方向にひっくり返る石があるか判定(石の位置, i, j);
}
}
とまぁ、ざっくりこんな感じのことをやってたっす。
判定関数の作り方がマズくて、i=0,j=0のときに無限ループっす。
対処として、i=0,j=0を除いてループを全部書き下したっす。
8方向についてだけっすからラクに書き換えられたっす。
ループじゃない分、ちょっとだけ速くもなるっすからね。
さらに今日はもうちょっと進んだっす。
初期盤面からの探索で、正しい着手可能点を返してきたっす。
盤面評価がいい加減でも、とりあえず探索できたっす。
あとのチェック項目は
・パスの処理
・終局の処理
・評価関数の強さ
・全体の実行速度
とりあえず大きいのはこんなところっす。
今日はかなり進んだ気がするっす。
0 件のコメント:
コメントを投稿