2048 in 3D 187 points by superlucy on Mar 17, 2014 | hide | past | web | favorite | 66 comments

 If someone could implement "512 in 2D", that'd be great. I might actually win a game.
 I've beaten 2048 (i.e., developed a general algorithm that consistently wins).Do you end up with game boards with more than one 128 tile, 64 tile, etc.?The game has a natural tendency to spawn multiple high-value tiles, and preventing it from doing that is the nut of the game.Pick the bottom row and make that row your "accumulator". Pick a bottom corner; this bottom corner will store your largest value. Now, keep your bottom row sorted from low value tile to high value tile at all costs:`````` 4 8 16 128 `````` Let's say the bottom two rows look like this:`````` 2 8 4 2 4 8 16 128 `````` You drop the 8 down:`````` 2 4 2 4 16 16 128 `````` Now, merge left or right? To the right of course, you want to keep that bottom row sorted:`````` 2 4 2 4 32 128 `````` Now drop down (or continue merging to the right until you can drop a tile down into the empty space in the bottom row):`````` 8 4 2 2 4 32 128 `````` This "locks" the bottom row into position, allowing you to freely move the upper three rows left and right without disturbing the ordering of the bottom row. Row-locking is more important than clearing the board.Focus only on the bottom two rows for most of the game (until/unless most of the board fills up). Accumulate values in the bottom row, and build matching values in the row above it.What if the game plays dirty and you end up with:`````` 4 32 128 2 `````` Reverse the ordering of your bottom row. You now want to gradually shift that "128" tile to the left, so build on the "4" and "32" tiles until you get something like:`````` 64 64 128 4 `````` Now shift left and left again:`````` 256 4 `````` And drop new tiles into the bottom row:`````` 256 4 2 2 `````` And your bottom row is ordered once again.What if a higher value tile drops into the bottom row out of order?`````` 32 4 16 128 `````` Ignore it. Build those "4" and "16" tiles:`````` 32 32 32 128 `````` And then merge right and right again:`````` 32 64 128 `````` And drop a new tile into the empty position:`````` 2 32 64 128 `````` This is the situation you want to avoid:`````` 16 64 128 64 `````` This is a natural result of the rules of the game, and this is where it becomes difficult for the player to win, especially when those values start to look more like:`````` 32 128 512 128 `````` Now you suddenly have to do a lot of work in just three rows of space to double one of those 128 values.This approach makes the game pretty easy.
 I developed similar strategy, just in the top row (usually top 2 rows, because it's hard to keep hivh value tiles just the first row).The only problem is when you have no valid moves that keep the bottom row in place and you need to move up. In such case mova back down as fast as possible, and deal with that one "2" that was most probably spawned on the wrong side of accumulator row later.
 Thanks for that - I have now won my first game of 2048. I can die happy :)
 thx for the strategy... I developed something similar while playing, but this explains it much more explicitly. :)
 This version is actually much easier than the original.
 I think you're right. What makes the original so difficult is that if you're not careful, you can easily end up in a situation where the only move you're allowed is potentially disastrous. With 6 possible moves, that's significantly less likely.I just won on my first shot.
 I agree.
 "128" or even "64" is more my cup of tea :)
 Let's make it 4 and get back to work ;) (only joking: I only got to 1024 myself, but I prefer Threes, the split between 1 and 2 is neat, makes me think about re-reading The Gods Themselves)
 Did you know that using only three directions drastically increases the chance of you winning, because it alters the way numbers are being stacked?
 The animation when performing moves along the third dimension is not very clear. When moving a square from the plane 1 to plane 3, maybe it would be neater to fade it in from plane 1 to plane 2, then from plane 2 to plane 3, rather than moving it sideways including through cells it isn't passing by.
 Another option would be to have them "jump".Up if it moves to an adjacent plane, down if it goes from one extreme to the other.
 I was expecting some clever css and js to draw them in perspective.
 Clearly that's next.
 I'm holding out for Oculus VR support.
 Don't even need JS. Just use three CSS transforms.
 Rubik's cube 2048?
 What hackernews has become:I remade this simple game!I was getting really fed up with the flappy bird stuff and was happy to see it go. Now this? Don't get me wrong, love the game, but god damn can we say beating a dead horse?
 It's not like 2048 is taking over the front page. People iterate on an idea that's fun for them, where's the harm in that? What have you done today that you'd like to show us?
 I don't mean to insult anyone. I fully understand why people are doing it. But I don't understand how these get repeatedly voted to the top. Can't we start a megathread or something for these?
 > Can't we start a megathread or something for these?That's not how it works. HN is ephemeral, threads last for one day mostly (sometimes 2) - after that it's like they were never there. If there's a new development about any subject, a new thread gets created. Look at all the threads where people speculate about the downed Malaysia jet or Dorian Nakamoto.If you don't like or don't care about something, just ignore it. I ignore 50% of the stuff here, but rarely do I come across a thread that makes me feel "this shouldn't be here at all".I also think the unspoken convention is that people who made a piece of software get a bit of extra attention and feedback. Personally, it's one of the features I like most around here.
 I'm starting to sound like a broken record saying this, which is kind of sad... But here it goes again.If you don't want to see something on the front page, don't upvote it. If it makes the front page, then people wanted to see it on the front page, or liked it enough to upvote it... The whole mentality that somehow you think that the majority of HN agrees with you on being sick of seeing this stuff on the front page is clearly wrong, because they're putting it on the front page.If you see something that doesn't interest you, move onto the next.Happy St. Patrick's Day.
 Isn't your post slightly hypocritical? And isn't talking about it better than just ignoring it anyway? You did decide to say something after all.
 Of course, lets fill up the thread with comments about how 5 of (as of this comment) 92 people didn't want to see this on the front page, instead of talking about the link itself.
 Because people are having fun with some open programming and brainstorming. It's awesome!
 There's about one thread per day or at least one at a time, a megathread would be exactly that.
 Watching the stories about these games float right to the top of HN has inspired me to make Flappy 2048 for some easy pageviews, so there's that.
 It's good because it has slightly more sophisticated gameplay than flappy bird and is still straight forward to implement and therefor iterate on.It's quite fun to see a game literally evolve.
 Completely agree.
 This is the best version of the game.---There needs to be a clear while line separating the boxes; after intense staring I have difficulty separating the individual boxes.A "solution": keep pressing right and E and up or down if you get stuck. Make some manual moves if the board gets cluttered.Do not use the strategy to cluster pieces into a corner.----Solved it. http://i.imgur.com/sb3VMCY.jpgAnd apart from the 2D variants it required some thinking. This is THE version to iterate and improve. It has gameplay.
 This seems easier than the 2D version. I think it's because there are more possible moves - six instead of four - so even if you play at random there's more of a chance that some move is available.
 Agreed. Though I've only played the 3D version twice, my win rate is 50% and i only see it increasing. The 2D version is a little more challenging.. I think I win roughly 25% of the time as luck plays a bigger role (at least with my strategy).
 Plus you don't seem to be able to lose (or at least for me). So it's really easy!
 That actually made game much easier
 Yet it can't be solved by mashing and requires some thought.
 You can almost randomly press q, up, left and right sometimes until you get 1024 and then start thinking
 Yes but not always. A pre-filled version would likely be made for commercial release.
 I feel like this version is subtly easier.
 It is significantly easier if you have the patience to reason about it for a bit longer.
 Yeah, I won the first time I played it, it's actually quite easy and expected to be so. I feel you could go very very far with it given the 27 slots.
 It's not even that subtle, there's a lot more room and the extra dimension helps a lot in unscrewing yourself after filling the whole board.
 Derivative request: Can someone make a version that displays values in hex instead of decimal?
 Just built 0x800; find it here: http://pages.cs.wisc.edu/~sohn/0x800/.(I was already working on a binary derivative at the time, but figuring out the font sizes is a little tedious.)
 Thanks man. Do you take BTC tips? :)
 Do now. :) bitcoin:1NhTCJF9owKLxXhizSd57GiYWkBELFq2Jc
 sent!
 Thanks! Looking forward to playing
 Someone should make a 4D version.
 Fought hard for it but I beat this one too, on my 3rd try. Good work!
 Just add an option to undo moves. :)
 I'm coding up a version where the user enters the dimensions of an arbitrary hyperprism and plays in it. The controls are going to be obnoxious though, best idea I have so far is ab-cd for moves in small boxes, ef-gh for metaboxes, ij-kl for metametaboxes, etc.. I'm also trying to make a smart AI so I don't have to play said versions.
 Shameless plug! I created a mini game called Tetris++ where your ability to do math quickly gets tested: http://cutcss.com/tetris++/
 change the colors, black and blue look the same to me (using flux here, it's 23:09...)
 Thanks for the comment. At least someone played it.
 I've managed a 16384 with a score of 245892 - this version eats up so much time per attempt that it's almost depressing when I lose on a careless mistake..
 WTH! I am addicted to every 2048, 1048 and now this!
 I think I renamed the game to 8192 http://imgur.com/2to7bWm
 Awesome game, now somebody make an AI for it!
 And then a multiplayer, followed by a browser benchmark!
 This is going too far. It's now as hard for me to visualize as the 3D chess on Star Trek.
 Soon we will re-invent the ultimate "hard" simple game: Go
 Keep it coming! This thing gets better and better
 Flagged.
 ...i feel really stupid. I understand the objective of the game and the basic mechanics, but how do I know what the Q and E button do? I seems like some type of jumping occurs on the row.

Search: