6 ms·
Show HN: Unflip – a puzzle game about XOR patterns of squares
- wilsonnb3 11mo agoHad a lot of fun with this, great job on the concept and presentation!
- bogdanoff_2 11mo agoThanks! I'm glad you enjoyed it!
- BoppreH 11mo agoVery nice and satisfying, but I would suggest ramping up the difficulty a little faster. I got until lvl 15 by just flipping the obvious areas, taking no more than 2 seconds. It's otherwise very cool and minimalist. Edit: limiting it to square flips was a great idea. There are just enough moves to make the answer non-obvious (after lvl 15), but not so many possible moves that you get overwhelmed. --- Edit 2: I just remembered I made a similar "game"[1], where you select columns to XOR with other columns and try to reach the target pattern. Use the scroll wheel and shift+wheel to change the pattern and size. That was actually part of a real research project in optimizing circuits for computing binary finite fields, where the "game" was a sandbox to try different algorithms. The best algorithm was actually found by someone playing in this sandbox and coming up with an efficient strategy. [1] https://boppreh.com/source/playreduce/ https://boppreh.com/source/playreduce/
- bogdanoff_2 11mo agoThanks! And yeah, I've gotten the suggestion to ramp up difficulty faster from a few people. Although interestingly some other people in the comments here say they liked how the progression goes. And that's an interesting little game you made. And I spent quite some time creating an algorithm and solver to find the par for Unflip. I'm planning to release a blog post about it soon
- riffraff 11mo agoI think if you make the par visible in the "result screen" and add a "try again" option to "next" this could make it more interesting without the need to ramp up difficulty. I think I solved a few cases with a bunch of random shifts, for example, and may have switched to thinking mode if I was faced with that.
- stephenlf 11mo agoLove it. The “par” value is a huge hint. You might consider hiding it
- bogdanoff_2 11mo agoThat makes sense. I think what I'm gonna try is hiding it until the level is solved at least once.
- martin_balsam 11mo agoI agree the ramp up is a bit slow, but I love the concept, and the interface. I am stuck at level 26 edit: found a way to solve it in 6, but not in 4
- stephenlf 11mo agoLevel 24. I took a natural approach (pull each corner to the center) and got a rather unfortunate picture —- Edit: and the right answer was so obvious, too
- snowfield 11mo agoPlayed until 27. All the levels were pretty easy, 15-30 seconds per level. Mainly because of the "par" feature
- jy14898 11mo agoStopped at 74 but managed to par all before that somehow. Didn't really do any problem solving/deep thinking about it, just clicking what felt right
- lovegrenoble 11mo agoNeumorphic knot, a puzzle about Knot patterns: https://brainteaser.top/knot/index.html https://brainteaser.top/knot/index.html
- intalentive 11mo agoI like it. Played a bunch of levels. I could feel my brain learning new patterns (like the card game Set). There are a handful of really useful primitives.
- james_marks 11mo agoReally nice concept and super clean execution. Wish I’d had 1/2 this restraint on adding complexity when I made my own tile-based puzzle game[0] [0] https://www.hidden-mirrors.com https://www.hidden-mirrors.com
- bogdanoff_2 11mo agoI like your puzzle game. Yeah, it did take me a bit to understand initially. I wonder, do you generate the daily levels automatically?
- james_marks 11mo agoGlad you enjoyed it. Yeah, the daily levels are algorithmic with an RNG seeded with the date. Took ages to find an algorithm that produces mostly interesting puzzles in the goldilocks difficulty zone.
- zem 11mo agoI really love how the first few levels teach you about various solving elements and patterns. very well done.
- bogdanoff_2 11mo agoYeah, that was the idea.
- goodmachine 11mo agoWell, you nailed it there. Nice work
- atum47 11mo agoAndroid gestures need to be prevented in order for the game to work on mobile (drag finger from right to left go back). Nice game thought.
- bogdanoff_2 11mo agoInteresting. I don't get that on my android phone. What model and browser are you using?
- mkl 11mo agoWorked fine for me on Firefox on Galaxy Note 20. I've never run into single finger back gestures that can start anywhere - seems like that would break almost everything that involves dragging.
- vunderba 11mo agoNice job. I'm reminded of the "Lights Out" game [1]. https://en.wikipedia.org/wiki/Lights_Out_(game) https://en.wikipedia.org/wiki/Lights_Out_(game)
- kinduff 11mo agoDid I just get flipped in level 13? I really like it, the level progression feels good. Very nice execution.
- Retr0id 11mo agoLevel 60 is a fun one
- anigbrowl 11mo agoYes I got stuck there for a while. I did a few more after that but my interest waned. I did spend a lot fo time feeling ike a pixel in Conway's game of Life.
- bogdanoff_2 11mo agoAh, yes, the single-pixel level.
- senfiaj 11mo agoyeah, eventually figured out how to do in 5 moves
- mikewarot 11mo agoWow... 120 levels... that was hard. I kept getting down to 1 square, and that always stumps me.
- bogdanoff_2 11mo agowait, did you actually do the whole 120 levels in one sitting? Wow. How long did it take you?
- mikewarot 11mo agoA few hours
- mmis1000 11mo agoIt actually have a dedicated answer to solve just 1 square though. But it's not the most optimized way to do the puzzle.
- bogdanoff_2 11mo agoIf anyone wants an extra challenge: think, how would you write a solver for this?
- NatKarmios 11mo agoTangentially related, have you heard of Bombe? It's a hexagonal minesweeper where you write rules to solve every possible scenario. It even checks your rules' satisfiability via SMT.
- bogdanoff_2 11mo agoThat's pretty cool. It reminds me of writing peep-hole patterns for an optimizing compiler.
- penwielder 11mo ago(If I'm trying not to spoil anything, do I even post? Maybe I can encourage someone else to have fun giving it more thought.) At least one elegant and efficient answer is within reach for many. The person who first pointed it out to me didn't need to know the relevant branch of mathematics to do so; he intuited the shape of it without the formal terminology. I'll be particularly curious to hear the pattern(s) in how many solutions there are, and/or the probability of a random board being solvable. The haptic feedback on mobile is really on point in this implementation.
- bogdanoff_2 11mo agoSo what is your solution, I'm curious. Regarding the number of solvable boards. It is actually possible to calculate the exact number. The solvable boards correspond to the image of the matrix of moves. It will be a vector (sub)space over Z/2Z, so it will always be a power of 2, and its size will be determined by the rank of the matrix. For example for 5x5, there are 2^22 valid boards. And regarding the number of solutions to a given board, (assuming you ignore the order of moves, because it doesn't matter) it will always be the exact same number, and in the case of 5x5 it will be 2^8. 8 is the nullity of the matrix of moves. Note that 22+8=30, which is 44+33+22+11, which is the number of possible moves.
- fsckboy 11mo agoi have a strong quibble about calling this XOR. XOR takes two arguments and one of the arguments here is implicit. The game inverts the square colors, which XORing with "1" will do, but it's not defined whether white or black is 1, it just inverts white and black.
- bogdanoff_2 11mo agoThe way I thought of it was 0=white 1=black. I used the term XOR when posting on hacker news because I thought people here might have an intuition about the kind of patterns it could form in 2D
- fsckboy 11mo agoI have the intuition, I understood what you meant. but I still think it's an error.
- Hackbraten 11mo agoIf you're into retrocomputing, the C64 game Quadromania (1987) has similar gameplay: https://archive.org/details/Quadromania_1987_CP_Verlag_de-en_cr_CHR_Docs https://archive.org/details/Quadromania_1987_CP_Verlag_de-en...
- bogdanoff_2 11mo agoInteresting. It is very similar. It took me a while to get past the instruction screen (I needed to press space, then "E" for english, then press escape) Now I can't seem to figure out the controls for the actual game.
- sd9 11mo agoThis was incredibly easy and then it suddenly got incredibly hard
- berkaycit 11mo agoIt’s amazing. It inspired some new ideas.
- slig 11mo agoGreat game, thanks for sharing. Would love to have a daily level.
- bogdanoff_2 11mo agoYeah, it's my plan to implement daily levels, as well as weekly levels. I was thinking of making weekly levels be very big (like 12x12) where I don't know what the par is myself, and have it be a challenge to see who in the community can figure out a way to get the lowest number of moves. And daily levels would probably be more similar to the regular levels.
- slig 11mo agoThanks for replying. Since you're considering bigger levels, maybe three daily levels: easy / medium / hard. On my games I usually go with five levels [1], in different tabs that can be solved concurrently, from very easy to very hard. People seem to enjoy the progression. [1]: https://www.zebrapuzzles.com https://www.zebrapuzzles.com
- bogdanoff_2 11mo agoHi. I haven't added a daily level to Unflip yet, but I created a Weekly level.
- bogdanoff_2 10mo agoOk, there's a daily now as well
- mmis1000 11mo agoThe game is quite fun. But it seems the difficulty ramp quite late? It's not very difficult to get the answer with least step by solve the side first until about last 20 levels. Also, the game does give you a hint about how to bruteforce the level if you only have one square left. Good job.
- bogdanoff_2 11mo agoGood point. I definitely need to work on the progression.
- stevenalowe 11mo agoASMR FTW Well done!
- bogdanoff_2 11mo agoAll the sound is purely from the vibration of your phone!
- stevenalowe 11mo agoWhat sounds?
- bogdanoff_2 11mo agoYou said ASMR, I thought you meant the auditory phenomenon.