前回の続きです。 今回は、いいこと尽くめに思えるAperyのような縦型Bitboardの弱点について考えていきましょう。 そうそう。Sunfishも縦型Bitboardを採用しているそうです。てっきり横型かと思っていました。お詫びして訂正しておきます。 今回は縦型Bitboardの唯一の弱点である、歩の打てる場所を探す処理について考えていきましょう。 将棋では二歩は禁則なので自分の歩のある筋に歩を打つことは出来ません。Bonanzaの指し手生成部では、この処理は次のようになっています。 ibb_pawn_cmp = BBToU(BB_BPAWN_ATK); ais_pawn[0] = ibb_pawn_cmp & (mask_file1 >> 0); ais_pawn[1] = ibb_pawn_cmp & (mask_file1 >> 1); ais_pawn[2] = ibb_pawn