swap.c

交換値の計算。これもbitboardを活用している
というか再帰がない。ループとgoto文でできている。
bonaがbitboardでSEEを高速化しているというのは、だいぶ初期に聞いていたけど、
自分でやって速くやる方法はなかなか思いつかず、
普通にban配列で、特定マスを取れる駒を安い駒からサーチして、安い駒で取れる場合はとって再帰している
うさぴょんのソースは、予め、取れる駒をリストに入れておいて、それを伝搬して高速化している
でも、飛び駒がからむ微妙なので合法手チェックも併用している。


これは自分も工夫してけっこう速いSEEになってると思うんだけど、
SEEとかinCheckは呼ばれる回数が半端無く多いので、高速化した場合に全体の高速化に寄与する割合が多く
効果は絶大。