Tic Tac Chec, solved

Research write-up · July 2026

Solving Tic Tac Chec

A complete retrograde analysis of the original 4×4 alignment game. Perfect play is a draw, and a 2.48-billion-position tablebase now ranks every legal move.

Tic Tac Chec looks almost too small to resist brute force. Each player has only a pawn, knight, bishop, and rook on a 4×4 board. The goal is not checkmate but alignment: place all four pieces in one rank, file, or long diagonal. Yet captures return pieces to their owner's hand, pawns reverse at the board edge, and positions can cycle forever. Those rules turn a tiny board into a large, loopy game graph.

The result: under the original Dream Green rules with pawn captures following the pawn's current travel direction, Tic Tac Chec is a draw with perfect play.

2.462Bnormalized post-opening positions
14.237Mforced-placement opening positions
28.73Bpost-opening move edges audited
91.51%post-opening positions drawn
41 pliesdeepest forced post-opening win
1 bytevalue and distance per position

The game

Play starts on an empty board. White moves first. For the first six turns, each player places one piece per turn until both have three pieces on the board. Movement then remains unlocked for the rest of the game, even if a later capture leaves a player with fewer than three pieces.

After the opening, a turn either places an in-hand piece on any empty square or moves an on-board piece using its chess movement. Captured pieces are not eliminated; they return to their owner's hand and can be placed again later. Pawns move one square in their current direction, capture diagonally, and reverse direction when they reach either edge.

The pawn ambiguity

The printed rules say that a pawn reverses direction and captures only when moving “forward,” but they do not diagram a returning capture. The canonical solve reads “forward” as the pawn's current facing, so its capture diagonals reverse with its travel direction. A detailed French transcription and an independent playable implementation support that reading. The stricter “outbound-only” interpretation was solved separately as a sensitivity check.

What “solved” means

This is a strong solution, not only an opening verdict. The tablebase records win, loss, or draw for every position in the dense rules domain and gives exact distance to termination for every decisive position. A player with the table can play perfectly after any legal history.

SectionWinsLossesDraws
Post-opening184,895,59824,178,9202,253,286,227
Locked opening147,47230,46814,058,925

The numbers describe a draw-heavy game: 91.51% of post-opening positions are drawn. But decisive positions are often sharp. The deepest post-opening win lasts 41 plies under fastest-win play; the longest resistance from a lost position lasts 40.

How the solve works

  1. Give every position an exact integer address. A collision-free rank encodes which pieces are on the board, their squares, and both pawn directions. Color swap plus 180° rotation always makes the player to move White in the stored post-opening table, halving the domain.
  2. Work backward from finished games. Every four-in-a-row is a loss for the player whose turn comes next. Generated predecessor edges propagate wins and losses through the graph until no new position resolves.
  3. Call the unresolved residue draws. In a finite loopy game graph, positions left after the win/loss fixpoint are exactly those from which neither player can force termination. Infinite non-winning play therefore has draw value without inventing a move limit.
  4. Solve the six placement plies backward. Once the post-opening table is fixed, the acyclic opening can be evaluated from ply five to the empty board. The empty board is a draw, and all 64 first moves retain it.

Distance is added afterward. Terminal losses have distance zero. A win is one plus the shortest losing child; a nonterminal loss is one plus the longest winning child. Draws have no finite distance. The audited solve artifact stores this result and distance together in one byte per position, totaling 2.48 GB. For publication, a lossless draw-aware encoding stores distances only for decisive positions and reduces the full table to 463 MiB; every compact entry was compared with its source value.

Why trust it?

The solve was designed around independent checks rather than a single successful run. The production move generator was compared with a separate readable rules implementation. Rank and unrank were tested as a bijection. Generated predecessors were replayed forward. Finally, a pull-style audit regenerated every one of the 28,730,418,180 post-opening successor edges and checked the minimax equation at all 2,462,360,745 positions without using the solver's predecessor counters.

A separate distance audit checked all 209,074,518 decisive post-opening positions. The published table is tagged to the exact rules variant and protected by an internal CRC-64/XZ checksum:

rules tag     0x54544303
positions     2,462,360,745 post-opening
                 14,236,865 locked opening
table CRC-64  0xeb952765179a695e
table SHA-256 f6644e7d35cd9653e1c4bb33b2e4221a…

A draw can still be unforgiving

A deterministic perfect-play policy reaches a repeated position after a 32-ply prefix, then follows an exact 18-ply cycle. The cycle is a readable witness that the table can sustain a draw, although the exhaustive fixpoint audit, not this one line, is the proof against every possible deviation.

At the sharpest position on that line, Black has 18 legal moves. Only three draw. The other fifteen all lose in two plies:

4  . . . .
3  . N n .
2  B P R r
1  b . . .
   a b c d

Drawing: a1-b2, d2-c2, c3-a2
All 15 alternatives: loss in 2 plies

This is the character of the solved game: the global result is a draw, but maintaining it can demand precise tactical defense.

The sensitivity result

This table intentionally covers one ruleset: the original 1998 Dream Green edition with travel-direction pawn captures. It does not mix in the materially different 2025 Bobby Fischer reissue. Future variants will use distinct rules tags and separate artifacts so a UI can never silently probe one game's position against another game's table.

The outbound-only table is also a draw from the empty board, so the ambiguity does not change the headline result. It does change the game beneath that headline: outbound-only removes 426,173,880 legal move edges, and 16,529,908 post-opening positions change win/loss/draw value. Some results even reverse; 9,366 canonical wins become outbound-only losses, while 810 losses become wins.

The current canonical result remains tied to the best-supported travel-direction reading. A direct designer or publisher ruling would still be valuable, and the materially different 2025 edition needs a complete rules transcription before it can be modeled.

Sources and artifacts

No earlier public strong or weak solution was found in the prior-art search. That is a documented negative search result, not proof that no private or obscure solve exists.