Most 2048 advice is folklore passed between clones with different rules. This site ships its own engine, so every claim here can be checked against src/games/game2048/Game2048Engine.ts. Read the four rules below first. Every tactic follows from them.
The merge rules as actually implemented
The engine scans each row or column starting at the edge you swipe toward. It pairs equal neighbors in that scan order, once per move.
Three consequences follow.
1. A row of 2, 2, 2 swiped left becomes 4, 2. The pair nearest the swipe edge merges. The third tile does not join it.
2. A row of 2, 2, 4 swiped left becomes 4, 4. A tile created by a merge never merges again in the same move. Turning that into an 8 costs a second swipe.
3. A row of 2, 2, 2, 2 swiped left becomes 4, 4 in one move. Both pairs merge because the scan pairs leftmost first, then moves right.
Plan sequences of two swipes whenever a chain contains three equal tiles. If you expect a triple merge from one swipe, you will misread the board after every third duplicate.
Spawn odds you can build on
After every accepted swipe, one new tile appears in a uniformly random empty cell. The value is 2 with 90 percent probability and 4 with 10 percent probability, straight from Math.random() < 0.9 in spawnTile. The game starts with exactly two tiles.
A swipe that moves nothing is rejected before the spawn step. Dead swipes never fill the board, so you can hold position when the board offers no safe move. Use that pause to scan for the best merge instead of gambling.
A spawned 4 has already skipped one merge of two 2s. When a 4 appears far from your anchor row, treat it as one free link in a new chain rather than garbage to merge away.
Scoring is merged value, nothing else
The engine adds the value of each newly created tile to your score. Two 2s merging into a 4 pays 4 points. Two 1024s merging into a 2048 tile pays 2048 points in a single move. There is no move bonus, no speed bonus, and no combo multiplier.
This means a high tile count of small merges and a few giant merges pay the same per value created. Chase the board structure, and the score follows it.
The corner method, grounded in the scan order
The scan starts at the swipe edge. Merging into your strongest tile therefore requires swiping toward it, and the corner is the only cell that two directions can press toward at once.
Follow these rules.
1. Pick the bottom right corner and keep your highest tile there for the entire game.
2. Keep the bottom row completely full. Spawns land only in empty cells, so a full row can never receive a junk tile that breaks your chain.
3. Order the bottom row so values climb toward the corner, for example 2, 8, 32, 256 read left to right.
4. Swipe left and down as your default pair. Both directions press tiles toward your corner.
5. If you must swipe right to relieve a stuck column, first confirm the bottom row is full and ordered, because that swipe drags the row one cell away from the corner.
6. Never swipe up while the anchor sits in the bottom row unless every cell directly above it is occupied by a larger tile. If the anchor ever leaves the corner, swipe down on the next move. A down swipe scans that column from the bottom edge, which returns the anchor to the corner row.
Empty cell accounting
Each accepted move changes the occupied cell count by a fixed amount. A move with no merges fills one cell. A move with one merge keeps the count flat. A move with two merges frees one cell.
Count merges before you swipe. If the board is down to three empty cells and your planned move merges nothing, the board tightens to two. Two merges recover space without giving up structure.
Where this implementation hurts you
The engine ignores key presses while an animation runs. A slide takes 150 ms and the merge or spawn phase adds up to 120 ms more, so each move locks input for up to 270 ms. Mashing keys faster than roughly four moves per second silently drops presses. Watch for the merge pulse to finish before the next key.
There is no undo. A wrong swipe is permanent, and the engine has no move history to rewind.
Your best score lives in browser localStorage under the key game2048_best. Clearing site data for the domain erases the record.
Tiles above 2048 all render in the same dark color, because the color map in the engine ends at 2048. A 4096 and an 8192 differ only by their printed digits.
Finally, the game declares a win the moment any cell holds 2048 and offers a Keep Going button. The loss check is separate. You lose only when no cell is empty and no two equal tiles touch horizontally or vertically. A cluttered board with one adjacent equal pair is still alive.
2048 pre-swipe checklist
- [ ] Highest tile still in the bottom right corner.
- [ ] Bottom row full, with values climbing toward the corner.
- [ ] Counted the merges this swipe will trigger.
- [ ] Planned the follow-up swipe for any triple of equal tiles.
- [ ] Confirmed the swipe direction does not pull the anchor off the corner row.
- [ ] Waited out the 270 ms animation window before the next key press.
Play the [2048 game](/2048-game) with the engine open in a second tab if you want to verify each rule yourself. If your results disagree with anything above, or the corner method breaks for you at a specific board state, send the board layout and the swipe sequence. Losing positions are the most useful data point you can contribute.