タグ

2022年6月29日のブックマーク (1件)

  • reversi/othello - bitboard tricks

    (†は外部サイトへのリンク) Population count - 現時点の石数 Mirroring - 鏡像 Mobility - 着手可能位置 Get full lines - 埋まっている列を求める Count Last Flip - 最終手での返る石数 Flip - 返る石を求める (Move Generator) Flip AVX2/neon - AVX2/neon で返る石を求める リバーシの盤面は 8×8 の 64 マスで、石の有無をビットで表せるので、ビットボードへの納まりは非常に良い。 以下盤面の A1 を bit 0 (LSB), H8 を bit 63 (MSB) とする。(盤面とビットの並びが逆になる。) 自分の石 P と相手の石 O の 2 つの 64 ビット変数で盤面を表す。(文中で O (オー) と 0 (ゼロ) の両方が使われているので注意。) SSE2 で