Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: I made a deceptively simple but hard sliding puzzle (quaxio.com)
281 points by amenghra on June 2, 2022 | hide | past | favorite | 77 comments



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.


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.


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.


Whereas I solved it by instinct and am still not sure how. Maybe it is better to be lucky than good!


> 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).


It’s always a gbehf


Can someone explain that notion?


No notation, ROT13 encryption [1].

[1] https://en.wikipedia.org/wiki/ROT13


Fun. I have a blog I wrote years ago that had fun seeing a Rubik's cube as permutations. I can see how that could map somewhat to this. I should pick that back up.

Post was: https://taeric.github.io/cube-permutations-1.html


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.


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.


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)


TIL! It definitely struck a cord with my old rubik's cube solving days


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


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.


I assume that the name was a nod to the original game, my bad.

I looked a bit for similar puzzles, and it seems this class of puzzles has a better name: A “Toroidal Sliding Block Puzzle”[1]

[1]: https://puzzlingiphone.wordpress.com/2008/11/22/toroidal-sli...


Toroidal Sliding Puzzle => chefkiss emoji


> (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.


There’s some interesting variants listed here: https://en.m.wikipedia.org/wiki/Minichess

Without changing the rules somewhat, it appears that the odds change dramatically enough to make easy wins for one of the players on such smaller boards. Hence, variants include some weird stuff.

On the other extreme, you get https://en.m.wikipedia.org/wiki/Infinite_chess


I felt so cool for beating it and then I saw "Current level: Easy"


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.


Easy and Medium are doable. Hard is when the challenge begins!


I'm still trying to figure out how to flip the last two tiles in Medium. The rest of Medium is easy, but that last step is hard.


:D


The medium level is the same as carykh’s Loopover: https://www.youtube.com/watch?v=95rtiz-V2zM, https://loopover.xyz.


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.


Very similar to a game posted a couple months ago:

https://news.ycombinator.com/item?id=30956775 (368 points, 124 comments)


I know, the hard level is however novel. I started prototyping this game several weeks ago but Shubham beat me to the punch.


The medium puzzle is just like the torus puzzle in the Exponential Idle app. Solving help: https://exponential-idle.fandom.com/wiki/Minigames#Torus_Puz...


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


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.


The hard level is the same thing as The Nowotnik Puzzle, a ZX Spectrum game from 1983.

https://www.emulatorgames.net/roms/zx-spectrum/nowotnik-puzz...

https://www.youtube.com/watch?v=sTLeI5QS8Qw


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.


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.


Nice little game! Took me a few minutes to figure it out (I think having played with Rubiks cube helped somewhat)


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.


solved medium and on to hard now!


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 ?


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


If you have some userstyles / userscript manager or can put user CSS into your browser, some patchy CSS:

https://userstyles.world/style/4975/alok-s-sliding-puzzle-cu...

(It will break the moment author will change inline style.)


If I was going to go tho that trouble, I'd just build it locally (https://github.com/alokmenghrajani/sliding_puzzle)

My comment was to bring the red-green choice to the author's awareness, not to use HN as a complaint forum


Anyway, if you happened to peek at the illustration of the POC (used contrasting light / dark colours, plus patterns and softened letters of corresponding "inversion" [0]), do you think it is an improvement?

Author of the game also updated the contrast [1], so now it is light blue versus slightly darker violet, but still with same default (usually black) text colour [1]. Do you like it better? Or would you prefer classical black versus white or something in this lines?

[0] https://userstyles.world/api/style/preview/4975.webp

[1] https://github.com/alokmenghrajani/sliding_puzzle/commit/20c...

[2] https://github.com/alokmenghrajani/sliding_puzzle/raw/main/s...


Sure, and my response was to provide simple POC to try some alternative hopefully more accessible appearance on top of live version for folks with colour vision troubles and potentially for the author as well.


Thanks, I updated the colors for the easy level. Hope this pair of colors works better.


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


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.


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?


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.


Haven't had time to explore much but is the solution always guaranteed?


Yes. The initial position starts from the goal and makes 100 random moves.


Easy/medium weren't that hard. The smooth UI helps quite a bit.


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


Very nice - the explainer was helpful. Just lost an enjoyable 30mins :)


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.


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.


Try to use your sequence to build a row at a time.


Thanks OP! I had a shitty day and this was really nice.


Sorry to hear about that :( hope things get better!


The easy one is solved simply by going for an all red band in the middle first (which is easy) and then the end situation is very close.


I struggled with the easy, then found a method for medium, and then medium was easy:)

I can solve rubiks cube <30 seconds, and it definitely reminds me of it.

Thanks!


Pretty cool! I was able to solve it fairly quickly. It immediately reminded me of how you would solve a rubiks cube.


Fun and deceptively difficult, nicely done!


Have the first two rows figured out on hard but can’t seem to move past that. Any ideas?


I can give you my trick but it would spoil all the fun. Do you still want it or do you prefer to have fun?


I'm stuck at the same point, and would love a hint / spoiler!


A key sequence:

1 shift-b shift-1 b shift-t shift-b 1 b shift-1 t


Nice! At first I didn’t realize I had to match the small image, lol.


The easy mode felt like a rubik's cube lite, I enjoyed it !


That's 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


why has it taken this long for someone to come up with a 2D analog to the 3D Rubik's Cube? :O


Nice game, but not really difficult. Try to implement SquareMinx instead ;)


Did you try the hardest level?


Yes, it was easy. I know how to solve a lot of twisty puzzles, I have a lot of experience. Yours is an easy one. Squareminx, is the real monster.

edit: you put tiles at random for shuffle? It's not correct for the hard level. Only even permutations are accessible.

edit: maybe I was tired when counting my permutations, forget the last edit


The initial position starts from the goal and makes 100 random moves. So it’s guaranteed to be solvable.


I cloned the github repository, but I have no idea how to install/start/generate the website. So I can't hack into it. Could you provide explanation, please?


I added instructions to the README.md. Let me know if you anything isn't clear.


It works perfectly, thank you. Gonna hack into it and add more difficulty levels. Maybe it will become difficult with bigger sizes.




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: