Bitboardの説明いまさらながらこのような説明は不要かもしれないが、Bitboardの説明。駒位置をビット位置であらわす(ここでは説明を簡単にするため81ビット演算が使えるとする)。歩を突く手を生成してみよう。**に歩がいるときの利きのテンプレートを押し付ける方法もあるのだが、シフト命令でやってみよう。演算1回で9個の歩を動かした(どうだすごいだろ)。あとは味方の駒位置ビット列とxorして、ビット位置を端から読んでいけば合法手となる。前に動く駒はすべてこの演算で動かすことができる(飛香の飛び駒の処理は別に行う)。次に、9三と1三にいる銀を右上に動かしてみよう。九この81ビット列を10ビット右シフトすると、あれ、9一は変。右端にいる駒を右に動かすと左に回ってしまうので、1筋を0にしたものとandしておく。九これを10ビット右シフトすればよい。げっ、_mm_slli_si128/_mm_srli_si128は8bitずつのシフトしかできない!バレルシフタは回路を食うが、それは無いでしょ。sse5では自由なシフトができるそうだが、幻の命令セットになったので、shld/shrdでちまちま書くか。SystemはWindowsでもLinuxでも32bitでも64bitでも動くようにしてきたが、プラットホーム決め打ちになりそうな予感。