Methodology

We built three difficulty levels for our Crazy Eights AI. Then we measured them.

Our Crazy Eights opponent has Beginner, Medium and Hard levels, and they really do play differently — Beginner plays a loose, random-legal game and wastes its wild cards; Hard hoards them and plays the sharp lines. So we ran the obvious experiment: thousands of headless games of the levels against each other, no human at the keyboard. The result is a small lesson in the difference between playing well and winning — and a good explanation of why this game doesn't get one of our search engines.

 ·  6 min read  ·  all numbers from a re-runnable, seeded benchmark

Why skill has so little to grip

30%
of turns offer a real choice
1.68
legal cards on average, when you can play
50.5%
Hard beats Beginner heads-up — a coin flip
4,000+
seeded games per matchup

A strategy game gives the better player room to be better. Crazy Eights mostly doesn't, because on most turns there is nothing to decide. You must match the top card by suit or rank (or play a wild 8), and when we tally every turn of a game, this is what a player is actually faced with:

30%39%31%
a genuine choice (30%)
one legal card (39%)
nothing playable — you draw (31%)

Roughly 7 turns in 10 you have no decision at all — you either hold exactly one card the rules let you play, or nothing, and you draw. Only about 30% of turns present a real fork, and even then the average is just 1.68 legal cards to choose between. There is very little surface area for cleverness, and behind it all, an opponent's hand you cannot see.

A Crazy Eights game against the computer: a seven-card hand at the bottom with only one card highlighted as a legal play, the other six dimmed as unplayable, on a two-of-diamonds discard.
A real opening hand against the computer: of seven cards, exactly one is legal to play on the 2♦ — the other six are dimmed. This is what most turns look like, and it's why there's so little for an AI to be smart about.

Heads-up: the levels are statistically the same

We played each pairing 4,000 times, and — because whoever leads has an edge — twice, swapping who goes first, so the first-move advantage cancels out. Every matchup lands on top of the 50% line:

Matchup (2 players) First-named wins
Hard vs Beginner 50.5%
Hard vs Medium 49.8%
Medium vs Beginner 50.5%
Beginner vs Beginner (control) 49.9%

With ~8,000 games behind each row, the noise on these figures is well under a percentage point. The Beginner-vs-Beginner control at 49.9% tells you the harness is fair; that Hard-vs-Beginner sits right next to it tells you skill is nearly invisible in a two-hand game. In fact, whoever leads the first card is worth a shade more than which brain is playing.

At a four-player table, skill finally shows up

Add players and the picture changes — a little. We sat one test player against three Beginners; a fair share of wins is 25%. The Hard player takes 30%, a real edge over the field — though notice that a Beginner in the same first-to-act seat already takes 27.9%, so most of that gap is the luck of position, and only about two points is genuine skill. And Hard and Medium are indistinguishable:

Test player vs 3 Beginners Win share (fair = 25%)
Hard 30.0%
Medium 30.0%
Beginner (same first seat) 27.9%

The pattern is honest and a bit humbling: with more opponents there are more moments to make someone draw, so playing well pays off — but it is a nudge, not a landslide, and the ceiling is low.

Why we didn't reach for minimax or MCTS

Our other game opponents run real search engines: Chess and Checkers use negamax with alpha-beta pruning, Go uses Monte Carlo Tree Search, and Hearts — also a hidden-hand card game — uses determinized Monte-Carlo to deal the unseen cards many ways and play them out. So why not here?

Because search needs something to search. Tree search earns its cost when a position fans out into many meaningfully different lines that reward reading ahead. Crazy Eights fans out into about 1.68 options a turn, most of them near-equivalent, against a hidden hand and a random draw pile that will overwrite your plan next turn. A determinized rollout like the one that makes Hearts strong would spend real compute to recover the same nudge a one-line heuristic already gets — Hearts rewards that effort because dodging the Queen and shooting the moon are deep, readable goals; "shed your cards" is not. The measurements are the justification: when Hard and Medium finish in a dead heat, a heavier engine would just be a slower way to draw even.

Matching the tool to the game is the whole job. We wrote up the three algorithm families our games use, measured what doubling a Go engine's search buys, and how we benchmark these opponents in the first place. Crazy Eights is the case where the honest answer was "a small heuristic, and no more."

What the AI actually does

On the ~30% of turns where there is a choice, the Medium and Hard levels apply three cheap rules that capture essentially all the skill the game has to give:

  • Keep the wild 8s in reserve. An 8 is an escape hatch for when you're stuck; spending it while an ordinary card is legal throws away your only free move.
  • Play for mobility. Prefer the card that leaves you the most follow-ups next turn, so you're less likely to be forced to draw.
  • Press when an opponent is low. When someone is down to a card or two, that's the moment to change the suit under them or make them draw.

It runs in a Web Worker in your browser, decides in well under a millisecond, and — as the numbers say plainly — will lose to you plenty. That's not a weak engine; it's an honest one for a game the shuffle mostly decides.

How these numbers were made

Every figure comes from a seeded headless harness that runs the exact engine shipped at /games/crazy-eights/ — a mulberry32 RNG, 4,000 games per matchup, and, for head-to-head win rates, each matchup played twice with the seats swapped so the first-move advantage cancels. No engine is claimed to be perfect; the point of the study is the opposite.

Play Crazy Eights vs the computer →

More card games in the same family: Macao (Romanian) and Makao (Polish) — both a touch richer, and, the data says, a touch more skill-friendly. Or read more on how our game AI works without any LLM.

The Macao card game against two computer opponents. The player's hand at the bottom holds two of Macao's coloured jokers — a black joker marked +10 and a blue joker marked +1 — alongside ordinary cards, on a six-of-clubs discard.
What “a touch richer” looks like: Macao, the Romanian cousin, adds cards Crazy Eights has no equivalent for — including these coloured jokers (black +10, red +5, blue +1) that make the next player draw without changing the suit. More special cards means a few more real decisions per game.
The Makao card game against the computer. A jack is on the discard pile and a banner reads “Wants 5s”; the status line says a Jack demands 5s, so the player must play a 5 or draw.
Makao, the Polish cousin, goes furthest: here a Jack demands a rank — the “Wants 5s” banner means the next players must play a 5 or draw. Cards that reshape what everyone can do next are exactly the kind of choice a shedding game usually lacks, which is why the family, and Makao most of all, measures a shade more skill-friendly.