黒の着手位置を BitBoard mv; それにより反転する位置を BitBoard rev; とすれば盤面の更新処理は以下のように記述できる。 black ^= mv | rev; white ^= rev;配列で盤面を表した場合、反転する石の数に比例して反転処理のコストがかかるが、ビットボードを用いれば、複数マスを同時に処理できるので、上記のように反転する石数に依存せず、一定コストで処理を行うことができる。着手を取り消して元の状態に戻す処理も、上記の反転処理と同一になる。ゲーム木探索で次の深さの関数をコールするとき、引数で白黒ビットボードを渡すのであれば、以下のようにすれば盤面の状態を戻す必要はない。int negaAlpha(BitBoard black, BitBoard white, int alpha, int beta, int depth){     ....     for(すべての合法着手について) {         // 着手を実行し、白黒 と αΒ値を入れ替えて次のレベルをコール         int score = -negaAlpha(white ^ rev, black ^ (mv | rev),                                -beta, -alpha, depth-1);           ....     }     ....}
オセロのマスは左上が原点で、水平方向に A, B, C, ...H, 垂直方向に 1, 2, 3, ...8 で指標され、A1, D3 の様に指定される。水平方向を col (0..7), 垂直方向を row (0..7) とすると、マスに対応するビットボードのビット番号を col + row * 8 とするとよい。 BitBoard cr2bitboard(int col, int row)  // col (0..7), row (0..7) に対応するビットボード生成 {    return (BitBoard)1 << (col + row * 8); }
ネガマックス、ネガアルファなどの反転系のゲーム木探索アルゴリズムでは、次のレベルをコールするときに、盤面の先後を反転する必要があるが、オセロの盤面を2つのビットボード black, white で表し探索関数の引数として渡す場合は、以下のように引数で渡すときに順序を入れ替えるだけでよい。 int negaAlpha(BitBoard black, BitBoard white, int alpha, int beta, int depth) {     ....     for(すべての合法着手について) {         着手を実行;         // 白黒 と αΒ値を入れ替えて次のレベルをコール         int score = -negaAlpha(white, black, -beta, -alpha, depth-1);           着手を元に戻す;         ....     }     .... }
オセロの盤面は 8x8 = 64 マス、石は白黒2種類なので、64ビット整数を２つ用意すれば盤面を表現することができる。 typedef uint64 BitBoard; class CBanmen {    BitBoard black;    BitBoard white; };
8x8 = 64 マスについて、石が存在するかどうかを1ビットで表すデータ構造。ひとつの石種について64ビット、オセロは黒白2種類の石があるので、64ビット変数 x 2 で盤面を表すことができる。相手の石を挟んだかどうかなどの判定や、石の反転などの処理を再帰やループを使わず、シフトや論理演算だけで複数の石について同時に行うことができる（ビットパラレル性）ため、通常のデータ構造よりも処理が高速になる。
タランゴはスタンフォード大学の学生テニス選手として活動した後、1989年からプロテニス選手になった。同年の全米オープンでアンドレイ・チェスノコフとの3回戦に初進出する。1992年にATPツアーでシングルス2勝を挙げたが、それ以後はシングルスのタイトルを獲得できずに終わってしまう。1995年ウィンブルドン選手権3回戦で、タランゴはアレクサンダー・ムロンツとの対戦中に審判への暴言を繰り返したため、6-7, 1-3の時に主審から「失格」を言い渡された。テニスの試合中の暴言による失格問題は1990年全豪オープン4回戦で失格になったジョン・マッケンローなど過去に若干の前例があったものの、タランゴは「テニスの聖地・ウィンブルドンで」選手権史上初の試合中失格処分を受けたことで大きな話題を呼んだ。その後は1997年全豪オープンと1997年全米オープンで3回戦進出があるが、彼はキャリアを通じて4大大会の男子シングルスでは4回戦以上に勝ち残れなかった。ウィンブルドンでトラブルを起こした1995年、その直前の4月にソウル・オープンでセバスチャン・ラルーと組み、ATPツアーでダブルス初優勝を果たす。この年にダブルス3勝を獲得してから、タランゴはダブルスの分野で成績を伸ばしていく。彼のテニス経歴は1999年にハイライトを迎え、この年にダブルスで6大会優勝し、全仏オープン男子ダブルスで準優勝した。パートナーも多様な選手たちと組み、ジャパン・オープン・テニス選手権を含む3大会でダニエル・バチェクと、2つはデイヴィッド・アダムズ、1つはオリビエ・ドレートルと組んだ。全仏オープン男子ダブルスで組んだゴラン・イワニセビッチとは、初めての組み合わせで決勝に進出した。ともに左利きの2人は、決勝で第1シードのマヘシュ・ブパシ/リーンダー・パエスに2-6, 5-7のストレートで敗れ、初優勝のチャンスを逃した。2000年シドニー五輪ではオリンピックのアメリカ合衆国選手団の一員として出場し、シングルス2回戦でマリアノ・サバレタに敗れた。同年のジャパン・オープン・テニス選手権ではマイケル・ヒルと組んで2年連続の決勝戦進出を果たしたが決勝でブパシ/パエス組に4-6, 7-6, 3-6で敗れ、男子ダブルス2連覇を逃した。2001年度は6大会でダブルス決勝に進出したものの、4月のハサン2世グランプリで1勝したのみで、他の5大会は準優勝で止まった。この年はマイケル・ヒルとのペアで好成績が多く、ハサン2世グランプリで現役最後のダブルス優勝を飾り、全仏オープン男子ダブルスで2年ぶり2度目の準決勝進出も記録している。タランゴは2003年全米オープンの男子ダブルス1回戦敗退を最後に、34歳で現役を引退した。