top | item 31593726

Show HN: I made a deceptively simple but hard sliding puzzle

281 points| amenghra | 3 years ago |quaxio.com | reply

77 comments

order
[+] lisper|3 years ago|reply
If this puzzle reminds you of a Rubik's cube that is not a coincidence. The mathematical structure of both puzzles is essentially the same. The moves in both puzzles form a non-abelian group, which is the source of the challenge. See http://web.mit.edu/sp.268/www/rubik.pdf

In fact, a fun meta-puzzle is to find a three-dimensional analog to this two-dimensional puzzle.

[+] abnry|3 years ago|reply
It might be helpful to note that the moves form a group, but the puzzle itself is the group action of this group on the cubes/squares/pieces.

In this context it reveals the usefulness of commutators, which are moves of the form ABA'B', where A and B are some sequence of moves and ' denotes inverse.

In general A and B aren't commutative, but with respect to a subset of the pieces, the actions of A and B are effectively commutative, so ABA'B' will do nothing to those pieces. Which means you can get some simple permutation control over the remaining (usually much smaller) pieces of the puzzle.

[+] theideaofcoffee|3 years ago|reply
My first thought was the same, “ah it’s just a group puzzle like a rubik’s”. In my case, understanding the math doesn’t make up for me being completely useless in solving it.
[+] bradrn|3 years ago|reply
> In fact, a fun meta-puzzle is to find a three-dimensional analog to this two-dimensional puzzle.

I believe this puzzle is equivalent to a Ehovxf phor ba n gbehf (rot13).

[+] GuB-42|3 years ago|reply
And the meta-meta puzzle is, once you found a 3D equivalent, make it a physical object.

Both the "easy/medium" and "hard" puzzles look tricky to make in their own way, my gut feeling is that he "hard" puzzle is the easier one to design.

[+] bombcar|3 years ago|reply
With both, a key can be learning how to "swap" two pieces without modifying the others around them - once you have that worked out, you basically can solve it even if not in the most efficient manner possible.
[+] yuchi|3 years ago|reply
A 3d dimension version would require wrapping… I wonder if such a shape exists! (I don’t want to spoil this micro challenge more than I already did)
[+] ICodeSometimes|3 years ago|reply
TIL! It definitely struck a cord with my old rubik's cube solving days
[+] captn3m0|3 years ago|reply
Quixo (the game this seems to be based on) is also deceptively simple but Exptime complete (https://www.sciencedirect.com/science/article/pii/S002001902...) and was solved after 2 decades (draw at optimal play on a 5x5 board, win for first player on smaller boards): https://arxiv.org/abs/2007.15895
[+] amenghra|3 years ago|reply
Never heard of Quixo, thanks for sharing. My domain name was picked randomly a decade ago among the remaining short-ish names -- being similar in name is a coincidence.
[+] dane-pgp|3 years ago|reply
> (draw at optimal play on a 5x5 board, win for first player on smaller boards)

Somewhat relatedly, I keep wondering how board size affects the game of chess in particular.

It seems that a 1x8 board definitely leads to a stalemate (because the pawns in front of the kings would block each other), but at some point adding new columns (with the relevant pieces) makes the game impossible to exhaustively search, and at least plausibly introduces the ability for one of the players (presumably white) to win with perfect play.

That ability for a winning strategy to emerge just beyond our ability to compute is somehow tantalising.

[+] s-video|3 years ago|reply
I felt so cool for beating it and then I saw "Current level: Easy"
[+] TOMDM|3 years ago|reply
Agreed, I thought I had it cracked when I noticed that I just needed to get the spacing right on Easy, but man the difficulty is a cliff going into medium.

EDIT: Oh Ok, Medium isn't that hard either, much harder than easy though, just figuring out the last "row" is to toothsome part.

[+] mirceal|3 years ago|reply
Easy and Medium are doable. Hard is when the challenge begins!
[+] mihaic|3 years ago|reply
A few years back we had a programming challenge to solve the generalized medium puzzle. If you want to try solving it through code check it out here: https://csacademy.com/contest/archive/task/circular_shift_so...

It also has a detailed description of the solution in the more complicated cases, depending on the parity of each dimension.

[+] boobsbr|3 years ago|reply
This game has been invented before.

Not a dunk on you, people come up with similar or identical ideas all the time without knowing at all about previous instances of the idea.

I first learned about this game from a YouTuber named Cary KH, he named his game Loop Over.

https://youtu.be/95rtiz-V2zM

[+] jcfields|3 years ago|reply
There’s a Japan-only game for the Sega Game Gear called Kinetic Connection that plays similarly but involves rearranging a scrambled picture rather than moving colored blocks into a pattern.

https://segaretro.org/Kinetic_Connection

“Game 3” is the mode that rotates rows and columns like a Rubik’s Cube.

There are probably earlier examples, but that’s the one that I’m familiar with. I imagine a clever person could adapt it into a simple word game as well. Old computer and console games are a gold mine for ideas for simple puzzle games.

[+] LudwigNagasena|3 years ago|reply
I was developing a similar game in Unity but decided to go further and add portals, rotations, splitting and other mechanics. Unfortunately, I have never managed to polish it (those 20% that take 80% of time, duh). I hope one day someone will implement something similar.
[+] niknoble|3 years ago|reply
For the easy and medium, it seems like you can work outwards from the top left corner, solving progressively larger squares. 1×1, 2×2, etc. Once one of those squares is correct, you never have to touch the rows or columns in that square again.

Probably not a perfectly efficient strategy but it makes it easier to think about.

[+] tontonius|3 years ago|reply
Nice little game! Took me a few minutes to figure it out (I think having played with Rubiks cube helped somewhat)
[+] routeroff|3 years ago|reply
Same as you, but I took 90% on the time only on the last line, the first three are solved use basic swipe of two squares, as in a beginner cube method.
[+] tontonius|3 years ago|reply
solved medium and on to hard now!
[+] myaccount80|3 years ago|reply
Wow. Back in high school (~2011) I made this game as an ios app. I remember I published a video on YouTube and a few months later I found a copy on the App Store. Maybe it was just a coincidence. Unfortunately I don’t find my video on YouTube anymore, can it be that YouTube deletes old videos ?
[+] mdaniel|3 years ago|reply
While I don't suffer from red-green colorblindness, it does actually hurt my eyes. One might consider offering a color switcher since as best I can tell they just need to be different from one another for the puzzle to work
[+] amenghra|3 years ago|reply
Thanks, I updated the colors for the easy level. Hope this pair of colors works better.
[+] aghilmort|3 years ago|reply
group theory aside, the elegance of sliding implementation is such that it feels like just humming along playing with Turing tapes that can act on each other in some nice smooth way; that's not to say it's a precisely accurate analogy, more that it just feels nice in some intuitive CS / math sort of way

the other was that found it easiest to move to known state and then solve, like an intermediate canonical isomorph instead of solving directly as human without machine group theory super rotators

[+] ouid|3 years ago|reply
heres a non-constructive solution for the medium puzzle. the commutator of a row move a and a column move b (defined [a,b]=aba^-1b^-1). is a three cycle. it is not hard two see that any three cycle is conjugate to either a commutator or a product of two commutators [a,b]*[-a,b]. the three cycles generate the alternating group, which is maximal in Sn. but the group action also contains a 4 cycle, which is not in the alternating group. so the action must be all of Sn.
[+] froh|3 years ago|reply
Would it make sense to increase the difficulty more gradually? And independent of each other? Like size, number of colors, degrees of freedom, individually, instead if just easy medium hard, with presets?
[+] amenghra|3 years ago|reply
That was my initial idea (if you peek at the code, you’ll see it’s simple to create a 2-color + hard-mode). But it turns out that hard is quite hard, even with just 2-colors. So I picked 3 instead of 4 levels.
[+] danbrooks|3 years ago|reply
Easy/medium weren't that hard. The smooth UI helps quite a bit.
[+] fortysixdegrees|3 years ago|reply
I was finding this hard then wanted to see how long it would take to solve just quickly sliding randomly. Turns out very quick! If the number of moves was limited this wouldn't work
[+] MrDrDr|3 years ago|reply
Very nice - the explainer was helpful. Just lost an enjoyable 30mins :)
[+] alas_141|3 years ago|reply
I liked it. Very reminiscent of a rubik's cube. I found it's easier to make solid stripes and manipulate from there instead of going for the checkerboard right away.
[+] buzzdenver|3 years ago|reply
Any hints on how to solve even the easy one? I did map out what a sequence like right->down->left->up does, but feels like I'm still missing a step at least.
[+] amenghra|3 years ago|reply
Try to use your sequence to build a row at a time.