Full solution for today (spoilers!).
Given Button A
(ax, ay)
, Button B(bx, by)
, and Prize(px, py)
; how many times must you press Button A (a
) and Button B (b
) to reach the Prize? Sum3a + b
for each machine that has a solution.
Another Rust Solvers puzzle: Cosmic Express. Basically, it’s a routefinding puzzle. You have a train that needs a track from entrance to exit, picking up and dropping off cargo on the way.
It’s actual a relatively simple puzzle, so far as things go, but one thing that’s interesting from a solving perspective is that branching paths really don’t work great with my solver code. Paths just have a crazy branching factor when compared to (for example) playing one of a handful of cards.
But it’s still an interesting puzzle!
Another day (week? month?), another puzzle game.
This time around, we’re going to solve Golf Peaks. I picked this up a while ago on iOS, but only recently on Steam. It’s a cute little puzzle game themed around minigolf.
Basically, you’re on a grid and you have to get the ball (in the bottom in that screenshot above) to the flag (currently at the top). You have a set list of moves you can take, styled as cards–all of which either move a certain number of tiles in a specific direction or possibly jump into the air (and fly over obstacles).
It gets more complicated from there, but hopefully you have the basic idea. 😄
Another solver that I’ve been working on, after A Good Snowman Is Hard To … Solve?. This time, we have Sokobond! It’s a Sokobon… but with chemical bonds! Yeah, that’s a really good title.
The basic idea is you have a field of elements with (chemical accurate) free electrons):
Here we have 4 hydrogens (1 bond each) and a carbon (4 bonds). It should seem pretty obvious that the carbon should end up with a hydrogen on each end. The one last bit of interest: the element with the dashed border is the one we actually control, that will never change.
This eventually gets more complicated, adding:
It’s a pretty neat puzzle game with 144 levels of increasing difficulty. Perfect to solve.
I enjoy puzzle games. I especially enjoy letting computers solve them for me 😄. Once upon a time, I set up a framework for solving random things. Let’s solve some more.
Today: A Good Snowman Is Hard To Build
It’s a Sokoban about making snowmen! You can push snowballs of three sizes around, collecting snow if you roll over it. You can push smaller snowballs onto bigger ones, stacking them. Or back off, in order to get around one another.
And that’s really it.
There are some interesting twists (multiple snowmen, the ability to leave and re-enter levels, and even a whole second ‘hard mode’), but at a basic level, it’s just pushing.
You’ve probably seen Neil.fun’s Infinite Craft game somewhere on the internet. If not, in a nutshell:
Earth
, Fire
, Water
, and Wind
.Earth + Water = Plant
Plant + Fire = Smoke
Smoke + Smoke = Cloud
That’s… pretty much it, from a gameplay perspective. There’s not really any goal, other than what you set yourself (try to make Cthulhu!). Although if you manage to find something no one has ever made before, you get a neat little note for it!
So wait, what do I mean by ‘something no one has ever seen before’?
Well, if two elements have ever been combined by anyone before, you get a cached response. Barring resets of the game (no idea if / how often this has happened, but I assume it has), if A + B = C
for you, A + B = C
for everyone.
And here’s the fun part: if you find a combination no one has ever found before: Neil.fun
will send the combination out to an LLM to generate the new answer. The specific prompt isn’t public (so far as I know), but essentially what that means is that you have a basically infinite crafting tree1!
So of course seeing something like this I want to automate it. 😄
Let a Snafu number be a base 5 number with the curious property that in addition to the digits 0, 1, and 2, it has the numbers
-
as-1
and=
as-2
. Sum up a list of Snafu numbers.
Given a map with a series of moving walls (that wrap when the hit the edges of the simulation), calculate the fastest route from the top left to the bottom right.
Implement a cellular automaton with the following rules:
NSWE
, SWEN
, WENS
, ENSW
, NSWE
, …)