Sam's Lazyy Docs

How the engine actually works

A classical game-search engine — no neural nets, no GPU. It looks at patterns, searches a tree, and iterates. This page walks through each step with live diagrams and the real numbers we measured on the 2-core VPS.

New here?

1 · The loop, line by line

One move in, one move out.

engine/search.cpp · Searcher::search

        

2 · Scoring a move

Gomoku is a pattern game.

3 · How it iterates

Iterative deepening.

Node budget (log scale)
Returned depth
7
Best move
6,6
Score
781
Nodes
793,188

4 · Alpha-beta & the transposition table

Each candidate is a branch.

Root value
5
Leaves visited
6 / 6

Transposition table.

5 · Forced wins: VCF / VCT

Threat search.

6 · Lazy SMP

Shared table, shared stop flag.

worker 0worker 1 shared TT (128 MB)Zobrist → move/depth/score stop flagatomic<bool>

Staggering avoids all workers searching the identical tree.

7 · Pitfalls

Real bugs from building this.

8 · Real results

All numbers measured on the deployment box.

WhatBeforeAfterNote
The two big wins were algorithmic.