Skip to content

I Played 400,000 Games of 2048 to Test the Corner Strategy

Everyone repeats the same advice about corners and never pressing up. I built a bot to play our own 2048 engine four hundred thousand times and measure what each part of it is actually worth.

The advice about 2048 is remarkably consistent across the internet. Pick a corner. Keep your bottom row ordered. Almost never press up. We repeat it ourselves on our own 2048 page, and in the guide on how to win 2048. What none of us do — including, until this week, us — is say how much any of it is worth.

So I measured it. I ported the exact engine that runs on this site into a headless script, verified the port against the real page, and played 100,000 games under each of four decision policies. This is what came back.

The headline: the advice is right, and weaker than it sounds

Median score over 100,000 games per strategySame engine, same rules, four decision policies. Median rather than mean, because a handful of very long runs drag a mean anywhere you like.
1,8223,6445,4667,288Random moves: 1,052Random moves1,052Corner priority: 2,440Corner priority2,440Corner + tidy: 5,364Corner + tidy5,364Corner + tidy + no up: 7,288Corner + tidy + no up7,288
Show the numbers
Median score over 100,000 games per strategy
StrategyMedian score
Random moves1,052
Corner priority2,440
Corner + tidy5,364
Corner + tidy + no up7,288

Following the corner rule literally — press down, then left, then right, and press up only when nothing else moves — produces a median score of 2,440 against 1,052 for a bot pressing random legal keys. That is 2.3× better from a rule you can state in one sentence and follow without thinking.

Then the second chart arrives and spoils the mood.

Highest tile reached, share of 100,000 gamesThe score chart says how far each strategy gets on average. This one says what it can actually finish.
Random movesRandom moves — 64 or less: 44.5%44%Random moves — 128: 47.6%48%Random moves — 256: 7.9%Random moves — 512: 0.0%Corner priorityCorner priority — 64 or less: 9.7%10%Corner priority — 128: 39.2%39%Corner priority — 256: 46.4%46%Corner priority — 512: 4.6%Corner priority — 1024: 0.0%Corner + tidyCorner + tidy — 64 or less: 0.4%Corner + tidy — 128: 10.9%11%Corner + tidy — 256: 34.5%34%Corner + tidy — 512: 34.5%35%Corner + tidy — 1024: 18.8%19%Corner + tidy — 2048: 0.8%Corner + tidy + no upCorner + tidy + no up — 64 or less: 0.1%Corner + tidy + no up — 128: 3.5%Corner + tidy + no up — 256: 22.6%23%Corner + tidy + no up — 512: 43.9%44%Corner + tidy + no up — 1024: 27.4%27%Corner + tidy + no up — 2048: 2.4%
64 or less12825651210242048
Show the numbers
Highest tile reached, share of 100,000 games
Strategy64 or less12825651210242048
Random moves44.5%47.6%7.9%0.0%0.0%0.0%
Corner priority9.7%39.2%46.4%4.6%0.0%0.0%
Corner + tidy0.4%10.9%34.5%34.5%18.8%0.8%
Corner + tidy + no up0.1%3.5%22.6%43.9%27.4%2.4%

In 100,000 games, the literal corner rule never once reached 1024. Not rarely. Never. Its ceiling is the 512 tile, which it reaches in 4.6% of games, and it finishes with a 256 more often than anything else.

This is the part the advice leaves out. A fixed key priority keeps your big tile in the corner, and that alone doubles your score — but keeping the tile in the corner is not the same as building anything useful next to it. Without the ordered row feeding the anchor, the corner is just a place where a large number sits while the rest of the board silently jams.

Isolating the rule against pressing up

The interesting question is not whether the whole strategy works. It is which part of it is doing the work. So the third and fourth policies are identical bots with exactly one difference.

Both score every legal move by how tidy it leaves the board — empty cells, a big tile in the bottom-left, rows and columns that read in one direction, neighbouring tiles close enough in value to eventually merge. Both then play the highest-scoring move. The only difference is that one applies a fixed penalty to up and the other does not.

That single rule is worth 36% on the median score — 5,364 to 7,288 — and it changes how often the bot reaches 2048 at all, from 0.8% to 2.4%. That is 3× as many wins from one line of policy.

It also shows up in the shape of the run. The up-averse bot plays a median of 505 moves per game against 379: it is not scoring faster, it is surviving longer. Which is what the advice always claimed, stated as a number for the first time.

What this does not show

Three things, and they matter enough to say plainly.

These are bots, not people. The best of them reaches 2048 in 2.4% of games. A serious expectimax solver with a tuned evaluation function reaches it in well over 90%. The gap is my evaluation function, not the strategy — I built a bot good enough to compare policies against each other, not one good enough to represent a skilled human. Read the chart as "this rule beats that rule under identical conditions", never as "you will reach 2048 2.4% of the time".

The comparison is within-engine. Different 2048 implementations differ in ways that move these numbers — some spawn a 4 more often, some traverse the board in a different order and resolve a row of four equal tiles differently. Everything here describes the 2048 on this site.

A median is not a promise. The spread is enormous. The tidy bot's 90th-percentile score is 15,976 and its best single game was 37,220, against a median of 7,288. Any individual run tells you almost nothing.

How it was done, in enough detail to check

The engine is a direct port of assets/games/2048.js: same 4×4 board, same 90/10 split between spawning a 2 and a 4, same row-major traversal reversed for down and right, same rule that a tile which has already merged this move cannot merge again.

A port is worthless if it quietly plays a different game, so it is checked against the real thing rather than assumed. A script drives the actual game page in a browser, presses keys, reads the board out of the DOM after every press, and requires that the page's board equals the engine's board plus exactly one newly spawned tile. The running score is compared on every move too, since the score is the merge rule stated another way. Across 2,027 board states there were no mismatches in either.

The spawn rule is checked separately and statistically, because the page and the port draw from Math.random in a different order and forcing them into lockstep would only prove they are wired alike. Over 2,027 spawns the page produced a 2 90.33% of the time against the 90% the code specifies, and picked uniformly among the free cells.

That check found one bug, and it was in the test rather than the game. The first version scored spawn position as k/n, the rank of the chosen cell among the n free ones, and compared it against 0.5. Uniform sampling actually gives k/n a mean of (n−1)/2n — with two free cells left it averages 0.25, not 0.5 — so late-game spawns, where n is small, dragged the average down and the test reported a bias of about 0.39 that did not exist. Scoring (k + 0.5)/n instead gives a mean of 0.5 for every n, and the measured value is 0.4951. The generator was correct the entire time; the yardstick was bent.

Run it yourself

Both scripts ship with the site: tools/sim-2048.js plays the games and tools/verify-2048.js checks the port against the page. The raw output behind every number and both charts is in src/data/sim-2048.json, and each figure above has the full table under "Show the numbers".

So what should you actually do

The three-line version, with the numbers attached:

  • Commit to a corner. Worth roughly 2.3× your score over pressing whatever looks good, and it costs no thought at all.
  • Build the ordered row. This is the part that separates 512 from 2048, and the part the popular one-line version of the advice omits. The corner rule alone has a hard ceiling.
  • Keep refusing to press up. 36% on the median and 3× the win rate, from one habit, on top of everything else you are doing.

The last one is the one to internalise, because it is the one that costs something in the moment. Pressing right into a slightly worse board rather than up into a slightly better one feels wrong every single time. The data says do it anyway.

Frequently asked questions

Does the corner strategy really work in 2048?
Yes, and it is worth about 2.3× the median score of playing random legal moves — 2,440 against 1,052 over 100,000 simulated games each. But following the corner rule alone never reached the 1024 tile in any of those 100,000 games. The corner needs an ordered row feeding it to get past 512.
Should you ever press up in 2048?
Only when nothing else moves. In a controlled test where the only difference between two otherwise identical bots was a penalty on pressing up, the up-averse one scored 36% higher at the median and reached 2048 3× as often.
How were these numbers produced?
By porting this site’s own 2048 engine to a headless script and playing 100,000 games under each of four decision policies. The port was verified against the live game page over 2,027 board states with no mismatches in board state or score. Both scripts and the raw data ship with the site.
Do these win rates apply to me?
No, and that is worth being clear about. The best bot here reaches 2048 in 2.4% of games, which reflects the quality of its evaluation function rather than any human ceiling — a well-tuned expectimax solver clears 90%. The comparisons between policies are meaningful; the absolute rates are not a prediction about your play.
Try it yourself

The game this guide is about

More guides

How to Win 2048: The Corner Strategy, Step by Step

Almost every 2048 win is built on one habit. Here is the habit, why it works, and the three mistakes that undo it.

What Is a Good Reaction Time? A Look at the Actual Numbers

The human average sits near 250 milliseconds. Here is where that number comes from, what moves it, and how much of your score is you versus your hardware.

How to Type Faster: A Realistic Path from 40 to 100 WPM

Speed is a side effect of not making mistakes. The route from average to fast is mostly about unlearning three habits.