一○一△
今日わ、いまから合法手判定メソッドのデバッグとkiller moveの再実装を行う
ていうかkiller moveとか、よそ様のホームページの解説でちらと見た記憶をたどるならば、多分ゲーム木のある深さで最も評価値が高かっった手の何個かを記憶しておき、探索が再びその深さに達したときその手を真っ先(ぐらい)に指す、というものだったと思う。いや知らんけど多分、、
もちろんある親の子の中でBestだったからといって、他の親の子に対して優越するとは限らないわけだし、ことによったら反則手であったりもする。というわけで評価値の高かった手を記憶するといってもガチガチに覚えて一切忘れないというわけにいかず、探索が親や祖父や曽祖父ノードといった祖先を経由して遠く離れた部分木に移るにつれ、killer moveはじわじわ忘れていってもらわねば困る。また探索の中でkiller moveを試す前に、それが合法なのか否かが高速に判定できねばならない*1。
以上の知識と考察を基に、以前実装したkiller moveは1 depth 1 killer moveという簡素なものだった*2
その上つい最近わかったことだが、反則手のごくごく一部らしいが、誤って合法手とみなしてしまうバグがいるっぽい
それを潰した上で、1 depth 1 killer moveをうまい具合に脱却する。