HackerTrans
TopNewTrendsCommentsPastAskShowJobs

sumul

no profile record

Submissions

Show HN: Figure is a daily logic puzzle game

figure.game
417 points·by sumul·4 years ago·113 comments

comments

sumul
·14 days ago·discuss
I enjoyed this and loved the minimal UI, good copywriting, and tasteful animations. My brain gets a little bit stuck on words that I can see but aren’t valid because of a missing connection, but I get that this is one of the main points of the puzzle. Anyway, great job!
sumul
·5 months ago·discuss
This part really caught my attention (along with the rest of the preceding paragraph):

> Our inability to see opportunities and fulfillment in life as it is, leads to the inevitable conclusion that life is never enough, and we would always rather be doing something else.

I agree with the article completely, as it effectively names an uneasy feeling of hesitation I’ve had all along with how I use LLMs. I have found them tremendously valuable as sounding boards when I’m going in circles in my own well-worn cognitive (and sometimes even emotional) ruts. I have also found them valuable as research assistants, and I feel grateful that they arrived right around the time that search engines began to feel all but useless. I haven’t yet found them valuable in writing on my behalf, whether it’s prose or code.

During my formal education, I was very much a math and science person. I enjoyed those subjects. They came easily to me, which I also enjoyed. I did two years of liberal arts in undergrad, and they kicked my butt academically in a way that I didn’t realize was possible. I did not enjoy having to learn how to think and articulate those thoughts in seminars and essays. I did not enjoy the vulnerability of sharing myself that way, or of receiving feedback. If LLMs had existed, I’m certain I would have leaned hard on them to get some relief from the constant feeling of struggle and inadequacy. But then I wouldn’t have learned how to think or how to articulate myself, and my life and career would have been significantly less meaningful, interesting, and satisfying.
sumul
·5 months ago·discuss
Thanks for sharing. I’m a musician and programmer, so I’m squarely in what I’d expect is your target audience. Since you’re posting an early version for feedback, here are some of my broadest initial thoughts.

From your README’s philosophy section: “You describe what you want to feel — ÆTHRA handles how it sounds.” But the rest of the documentation doesn’t yet feel aligned to that vision. The closest you get to that is when you describe your example chord progression as melancholic, but you as the composer already happened to know that this particular progression provides the feeling you have in mind.

I love the idea of a high level way to programmatically or idiomatically describe how music should feel, especially how the composition should evolve over time (perhaps even in surprising ways that are beyond current tools). I hope as you progress that you’re able to find innovative ways to build toward that vision.

The current feature set feels like it would be considerably more convenient in a GUI environment. Again, I hope that as you continue to build, it becomes more obvious why this is a language and not a visual synthesis/composition tool.

A little audio output demo would go a very long way in potentially getting me interested in playing around with this.

Good luck!
sumul
·5 months ago·discuss
Great idea! I made a submission too. https://figure.game
sumul
·4 years ago·discuss
Keyboard navigation is fixed now. Tab to move around and Enter to clear.
sumul
·4 years ago·discuss
I think this is a excellent question that I haven't been asked before. I don't have a great answer, as I don't consider myself to be particularly great at solving these puzzles. Some of my friends are consistently better (fewer tries, faster) than I am. I've noticed that I find important patterns and key moves more quickly now after playing so many of them, but sometimes I still get stumped. Often I realize that I make an assumption about a large group needing to be cleared at once, but the solution hinges on intentionally breaking up the large group to make something else happen a move or two later. I think it's really fun to learn these types of things by experience, so my main suggestion—if you find it fun and not too frustrating—is to approach each puzzle with an open mind and don't get too attached to any single moves that you believe to be correct. Finally, you've probably noticed that you're often left with the same one or two tiles when you run out of moves. Try to think ahead and see if there are ways to connect that tile to another one earlier. Good luck!
sumul
·4 years ago·discuss
It's different every day, usually between 8 and 11 moves. It depends on the minimum number of moves required to clear the tiles in the given arrangement.
sumul
·4 years ago·discuss
This is excellent, thanks for sharing. My solver is designed to find every possible solution so that I can evaluate the ratio of "best" solutions to all solutions. A lot of these optimizations are super interesting, but since I'm intentionally going for comprehensive brute force (rather than finding any winning solution as quickly as possible), they're mostly off the table, at least as long as puzzles are randomly generated and I need to filter them based on solution space characteristics like this.

I did realize while reading this that I could get a little more sophisticated by finding out the number of moves in a best solution using an aggressively optimized fast solver. If that number is within a range that's fun to play, say 8-11 moves, then go ahead and find all the rest of the solutions with the maximum brute force. If not, then just scrub the whole thing since I wouldn't use that puzzle anyway.
sumul
·4 years ago·discuss
Very cool, thanks for sharing. And thanks for pointing out the keyboard thing. I was about to reply with "but you can!" but when I went to confirm I realized that while you can navigate to each tile with the keyboard you can't actually clear them. I'll fix that.
sumul
·4 years ago·discuss
That's really helpful, thank you. I'll see what I can do to optimize the animation performance more, and I'll take a closer look at the animation timing at lower frame rates. Definitely don't want to mislead or confuse!
sumul
·4 years ago·discuss
Thanks for reporting. That's a known bug that I'll try to fix soon. Firefox on Android is doing something weird with the Web Share API [1]. In a nutshell, the API has two methods. The first is `canShare`, which lets you ask the browser if it can share the data you're about to give it. The second is `share`, which does the sharing. I only attempt to `share` if the browser gives me the green light via `canShare`. So basically Firefox on Android is saying, "yup this object looks good" and then "nope won't share it." If it just told me no in the first `canShare` check, it would gracefully fall back to just going straight to your clipboard, which is what happens in Firefox desktop browsers.

For now, you can use the little "Copy" button in the corner of the results text bubble area. That one just goes straight to the clipboard reliably.

[1] https://developer.mozilla.org/en-US/docs/Web/API/Web_Share_A...
sumul
·4 years ago·discuss
I did look into it, although I'm not a lawyer. My understanding is that privacy notice compliance is a function of how personal information is being collected and used. I chose to collect no personal information whatsoever. I think of this as being respectful of you as the user and to the spirit of these types of regulations, rather than being "maliciously compliant" (like the ubiquitous strong default action of "accept all cookies").

Here's a quote from https://gdpr.eu/privacy-notice/ (emphasis mine)

> If an organization is collecting information from an individual directly, it must include the following information in its privacy notice:
sumul
·4 years ago·discuss
I'm glad you enjoyed figuring it out without instructions. Thanks for letting me know. I got some helpful feedback early on that resulted in the "Pick any tile from the bottom row" prompt. I grew up on Atari and NES and would never read game instructions (Atari was before I could read anyway, ha), so my hope was that I wouldn't need to force a walkthrough on anyone, especially since there's no risk in poking at it to see what happens.
sumul
·4 years ago·discuss
Oh, just want to clarify that I've done tons of projects. I've been designing and building interactive products professionally for about 20 years. This was just my first time using Next.js, React, etc. I spent about a week reading the official docs for React, Redux, and Next.js and then started building, with lots of visits back to the docs, Stack Overflow, tutorials, and blogs as needed throughout the process.
sumul
·4 years ago·discuss
Hey thanks!
sumul
·4 years ago·discuss
That's so helpful, thank you. I wonder if anyone would notice or care if I swapped the triangle for the square or diamond...
sumul
·4 years ago·discuss
Fair point. I mention the free tiers because I found it to be really low friction to start building without worrying about the pricing of every little service and platform (I did make sure the paid tiers weren't going to be a huge issue or surprise once I was ready to graduate). I'm willing to invest a bit in side projects once they get to a certain point of maturity and have the potential to maybe pay for themselves someday, so at this point I'm paying for the domain, Vercel, Supabase, and the Streamline icons I use.
sumul
·4 years ago·discuss
Thanks for letting me know, and sorry if that was frustrating. Your goal is to clear away all the tiles. Tiles that are linked together clear together. Links are made when same-color tiles are contiguously adjacent to each other. Blank spaces are filled in from above. You have a fixed number of moves available to clear them all. Hope that helps!
sumul
·4 years ago·discuss
Naming things to be unique and memorable is difficult, and finding a good domain is a big part of that when your product is a website. It wasn't my first choice to support the price gouging of .game, but after a lot of deliberation and some very helpful feedback I got about the not-very-good original name of this game (which had a .app domain), I decided to just go for it. Also Namecheap had a good deal on the first year, which took the edge off a bit. After living for it for a month or so, I rather like the name/domain figure.game, so I don't regret the decision.
sumul
·4 years ago·discuss
Love this. Where can I learn more about your toy language?