Open Opponent Prep, typ een gebruikersnaam in, en een paar seconden later staar je over het bord naar iets verontrustends: een bot die opent zoals hij opent, wegglijdt naar dezelfde wankele structuren waar hij altijd naartoe glijdt, en precies lijkt te weten wanneer hij geneigd is te blunderen. We noemen het de Ghost Bot, en onder de motorkap is het een echt gelaagd staaltje techniek — meerdere onafhankelijke systemen bovenop elkaar gestapeld, elk gebouwd om een andere vraag te beantwoorden over een vreemde tegen wie je nog nooit hebt gespeeld.
Eerst leest hij zijn hele geschiedenis
Zodra je een naam opzoekt, halen we elke beschikbare partij van die speler op en laten die door één analyseronde lopen — winstpercentage, welke openingen hij daadwerkelijk speelt met elke kleur, ongeveer hoe sterk hij speelt in verschillende fasen van een partij, en, cruciaal, precies waar hij in het verleden de meeste punten heeft verloren. Niets is gegokt. Alles is geteld, uit zijn eigen zetten, over de vele honderden partijen die hij heeft gespeeld.
Het boek van exacte stellingen: zijn zetten, geïndexeerd
Uit die geschiedenis bouwen we een opzoektabel: voor elke stelling die de speler ooit daadwerkelijk heeft bereikt, wat speelde hij, en hoe vaak? Wanneer de Ghost Bot in zijn voetsporen treedt, improviseert hij niet — hij put rechtstreeks uit die tabel, gewogen naar hoe vaak hij echt voor elke optie koos. Speel hem naar een stelling die hij vijftig keer heeft bezocht, en het antwoord van de bot komt uit precies diezelfde vijftig datapunten. Het is minder een simulatie en meer een herhaling, verteld door de cijfers.
De truc die het griezelig accuraat laat aanvoelen: het gewoonteboek
Hier komt het deel dat echt nadenken vereiste. Een tabel van exacte stellingen helpt alleen als je terug bent in een stelling waarin hij al eerder is geweest — en zodra je iets ook maar licht ongebruikelijks speelt, blijft die tabel leeg. Echte tegenstanders hebben geen oneindig geheugen, maar ze hebben wel gewoontes: de speler die zijn loper altijd fianchetteert, altijd rokeert vóór zet acht, altijd dezelfde pionnendriehoek bouwt, wat je ook doet aan de andere kant van het bord.
Dus bouwden we een tweede index die opzettelijk de helft van de informatie weggooit: hij onthoudt een stelling alleen op basis van de eigen stukken van de speler, en vervaagt alles wat jij toevallig doet. Dat vagere geheugen is wat de Ghost Bot in staat stelt om "dit lijkt op zijn Londen-systeem" te herkennen in een stelling die, technisch gezien, nooit is voorgekomen in zijn echte partijen. Het is patroonherkenning die dienstdoet als schaakbrein — en elke opgehaalde gewoonte wordt stilletjes opnieuw op veiligheid gecontroleerd voordat hij gespeeld wordt, zodat een vertrouwde opstelling nooit een stuk kan laten hangen op zet negen, alleen omdat de stelling er zo uitziet.
Boven op beide boeken ligt de vreemdste laag van allemaal: een persoonlijkheid, teruggebracht tot een reeks knoppen. We bouwen een stijlvingerafdruk door de daadwerkelijke zetkeuzes van de speler te vergelijken met een controlegroep van tegenstanders van ongeveer zijn eigen sterkte. Dat verandert "speelt voorzichtig", "houdt van scherpe tactiek" of "wordt ongeduldig in gelijke stellingen" in numerieke duwtjes die de beslissingen van de Ghost Bot stilletjes dezelfde kant op laten hellen, telkens wanneer hij voorbij beide boeken moet improviseren. Het resultaat onthoudt niet alleen zijn opening — het helt zoals hij helt.
Waarom verschijnt dit dan meteen, terwijl Report en Blunder Puzzle je laten wachten?
Hier is het eerlijke, iets minder indrukwekkende antwoord: Opponent Prep is snel omdat niets van het bovenstaande een schaakengine iets vraagt. Het hele rapport opbouwen — het repertoire, de twee boeken, de stijlvingerafdruk, de zwakke plekken — is tellen, geen berekenen. Het is rekenkunde over een stapel partijen die al hebben plaatsgevonden. Een moderne browser kauwt daar in een paar seconden doorheen, hoeveel honderden partijen er ook in die stapel zitten.
Game Analysis en Blunder Puzzle beantwoorden een compleet ander soort vraag, waarvoor geen kortere weg bestaat: was deze specifieke zet, in deze specifieke partij, daadwerkelijk goed — en hoe goed? Die vraag bestond vijf minuten geleden nog niet. Niemand heeft hem ooit eerder gesteld, want de stelling op je bord nu is uniek voor de partij die je zojuist hebt gespeeld. Er is geen tabel om dat in op te zoeken. De enige eerlijke manier om te antwoorden is de stelling aan een echte schaakengine te geven en die zet voor zet de hele partij te laten doorzoeken — en als hij controleert of een offer echt correct was, moet hij een tweede vraag stellen boven op de eerste: wat gebeurt er als hij het neemt? Dat is geen tabelopzoek. Dat is echt, opeenvolgend denken, dat live plaatsvindt op je apparaat, stelling voor stelling, en er bestaat geen cache ter wereld die dat kan overslaan voor een partij die nog nooit iemand eerder heeft gespeeld.
Simpel gezegd: Opponent Prep is snel omdat het herinnert. Report en Blunder Puzzle nemen de tijd omdat ze daadwerkelijk nadenken.
Bouw je eigen spook
Ken zijn gewoontes al voordat de klok begint te lopen.