Problem 2265. 2048 Next Move
Given a board in the game 2048 (see the game here: 2048) and a direction ('up','down','left', or 'right'), move the game forward one turn.
Move and merge blocks as required by the game's rules, but for simplicity do not insert a new 2.
Example 1
board = [ ... 0 0 0 2 0 0 4 4 0 0 0 16 0 0 0 16] dir = 'up' newBoard = [ ... 0 0 4 2 0 0 0 4 0 0 0 32 0 0 0 0 ]
Example 2
board = [ ... 0 2 128 4 0 16 4 32 0 8 0 0 0 0 2 0 ] dir = 'right' newBoard = [ ... 0 2 128 4 0 16 4 32 0 0 0 8 0 0 0 2 ]
Example 3. Resolving Ambiguity
If we think of the directions as defining the pull of gravity, then we resolve ambiguous cases by first merging the two "lowest" blocks. See below.
board = [ ... 0 4 4 4 4 4 4 0 2 2 2 2 0 0 0 0 ] dir = 'left' newBoard = [ ... 8 4 0 0 8 4 0 0 4 4 0 0 0 0 0 0 ]
Inspired by a suggestion from Nick Howe.
Solution Stats
Problem Comments
-
12 Comments
You are welcome. I wouldn't probably notice it if I had not sent an incorrect submission.
6 players like this wonderful problem. But at the same time 6 players like a problem like Problem 43033. Create a constant offset.
This is very confusing ...
I would love to find a way to get people "liking" problems more often. Liking makes the author feel good about a job well done, but more importantly it points people to good problems. Sometimes we try to motivate people to like problems. This happened with the October triathlon contest (when the problem you reference was created). But it can have an unintended outcome of encouraging people to like problems that aren't that great. The results are very uneven. Bottom line: if you like a problem, please "like" it!
Solution Comments
Show commentsGroup

Board Games II
- 14 Problems
- 10 Finishers
- High Precision Square Root (Inspired by Project Euler 80)
- Damping of Servomotors with Tachometer Feedback
- Find the right number make the equation
- Deriving a function using the difference quotient
- Fast 1-D Convolution (full shape)
- Fast 1-D Convolution (same shape)
- Fast 1-D Convolution (valid shape)
- Lambert's W
- First use of arrayfun() and anonymous function @(x)
- Cell Operator *
- Product of two multivariate polynomials
- Multivariate polynomials - convert monomial form to array
- Multivariate polynomials - overload multiplication
- Multivariate polynomials - emulate symbolic form
- Rewrite setdiff to account for non-unique values
Problem Recent Solvers89
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!