Opponent Prepを開き、ユーザー名を入力すると、数秒後には盤の向こうに不穏なものが現れる。相手と同じように序盤を開始し、相手がいつも陥る同じ不安定な構造へと流れ込み、まるで相手がミスをしがちなタイミングを正確に知っているかのようなボットだ。私たちはこれをゴーストボットと呼んでいる。その内側は、実に何層にも重なった本物のエンジニアリングだ—独立した複数のシステムが積み重なり、それぞれがまだ対局したことのない見知らぬ相手についての異なる問いに答えるよう作られている。
まず、相手の全履歴を読み込む
名前を検索した瞬間、そのプレイヤーの利用可能なすべての対局を取り込み、一度の分析にかける—勝率、各色で実際にどんな序盤に到達するか、対局のさまざまな局面でおおよそどれくらいの強さで指すか、そして重要なのは、過去にどこで最も多くポイントを失ってきたかだ。推測ではない。本人自身の指し手から、これまで指してきた何百局にもわたって数え上げられたものだ。
正確な局面ブック:指し手をインデックス化する
この履歴から、私たちは検索テーブルを構築する。プレイヤーが実際に到達したすべての局面について、何を指したか、どのくらいの頻度で指したか。ゴーストボットが相手の足跡をたどるとき、即興で指しているのではない—このテーブルから直接引き出し、実際にその選択肢をどれだけの頻度で選んだかで重み付けしている。相手が50回訪れた局面に誘導すれば、ボットの応手はまさにその同じ50個のデータポイントから来る。シミュレーションというより、数字によって語られる再現に近い。
不気味なほど的確に感じさせる仕掛け:癖ブック
ここからが本当に頭を使った部分だ。正確な局面テーブルが役立つのは、相手が以前に来たことのある局面に戻ったときだけだ—そして少しでも普段と違う手を指した瞬間、そのテーブルは空白になる。実際の相手は無限の記憶力を持っていないが、その代わりに癖を持っている。常にビショップをフィアンケットする、常に8手目までにキャスリングする、盤の反対側であなたが何をしていようと常に同じポーンの三角形を築く、そういうプレイヤーだ。
そこで私たちは、意図的に情報の半分を捨てる第二のインデックスを構築した。局面を相手自身の駒だけで記憶し、あなたが何をしているかはぼかしてしまう。この、より粗いはずの記憶こそが、ゴーストボットに「これは彼のロンドン・システムに似ている」と、技術的には実際の対局には一度も起きていない局面において認識させることを可能にしている。それはチェスの脳の代わりを務めるパターン認識であり—呼び出された癖はすべて、指される前に安全性を静かに再確認される。局面がそう見えるというだけの理由で、見慣れた型が9手目で駒を吊るすことは決してない。
両方のブックの上には、すべての中で最も奇妙な層が乗っている。一連のつまみに還元された人格だ。プレイヤーの実際の指し手の選択を、ほぼ同程度の実力の対戦相手からなる対照群と比較することで、スタイル指紋を構築する。これにより「慎重に指す」「鋭い戦術を好む」「互角の局面で我慢できなくなる」といった特徴が、両方のブックを超えて即興が必要になるたびにゴーストボットの判断を静かに同じ方向へ傾ける数値的な後押しへと変換される。結果として、序盤を記憶するだけでなく—相手が傾く方向へ同じように傾くのだ。
ではなぜこれが瞬時に現れ、ReportとBlunder Puzzleは待たせるのか?
正直な、少し拍子抜けする答えがこれだ。Opponent Prepが速いのは、上記のどれもがチェスエンジンに何も尋ねていないからだ。レポート全体を構築すること—レパートリー、2つのブック、スタイル指紋、弱点—は計算ではなく数え上げだ。それはすでに指し終わった大量の対局に対する算術である。現代のブラウザなら、その山に何百局あろうと数秒で処理してしまう。
Game AnalysisとBlunder Puzzleは、まったく別種の問いに答えている。それには近道が存在しない。この対局の、この特定の一手は本当に良かったのか—どれほど良かったのか?その問いは5分前には存在していなかった。誰もそれを問うたことはない。なぜなら、今あなたの盤上にある局面は、あなたがたった今指したその対局に固有のものだからだ。それを調べられるテーブルなど存在しない。それに答える唯一の誠実な方法は、局面を本物のチェスエンジンに渡し、対局全体を一手ずつ探索させることだ—そして、ある犠打が本当に正しかったかを確認するとき、エンジンは最初の問いの上にさらに二つ目の問いを立てなければならない。もし相手がそれを取ったらどうなるか?それはテーブルの検索ではない。あなたのデバイス上でリアルタイムに、局面ごとに行われる本物の逐次的な思考であり、誰も指したことのない対局に対してそれを飛ばせるキャッシュなど世界のどこにも存在しない。
簡単に言えば、Opponent Prepが速いのは、記憶しているからだ。ReportとBlunder Puzzleに時間がかかるのは、本当に考えているからだ。
あなただけのゴーストを作りに行こう
時計が動き出す前に、相手の癖を知っておこう。