# The Golf (Peaks) of Solving

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. ðŸ˜„

# Solving Sokobond

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:

• Modifiers that are placed on the map between squares:
• One that strengthens bonds, turning a single bond into double into triple
• One that weakens bonds, turning triple to double to single or breaking single bonds
• One that rotates bonds as you move by it
• More elements, eventually hydrogen (1), oxygen (2), nitrogen (3), carbon (4), and helium (0)
• Solutions that require forming multiple elements at the same time

It’s a pretty neat puzzle game with 144 levels of increasing difficulty. Perfect to solve.

# A Good Snowman Is Hard 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.

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.

# Advent of Code 2023 - Testing and Timing

A quick follow up to Advent of Code 2023: testing and timing.

It’s been bothering me a bit that I haven’t had a generic way to run tests and timing on every problem as I’m going.

So let’s fix it!

# AoC 2023 Day 25: Graph Splitinator

## Source: Day 25: Snowverload

Full solution for today (spoilers!)

## Part 1

Given an undirected graph, find 3 edges that split the graph into two connected components. Return the product of the component’s sizes.

# AoC 2023 Day 24: Collisionator

## Source: Day 24: Never Tell Me The Odds

Full solution for today (spoilers!)

## Part 1

Given a set of 3D vectors (origin + velocity), count how many times the vectors would intersect. Ignore the Z-coordinate for this part; the collisions do not have to be at the same time.

# AoC 2023 Day 23: Looong Mazinator

## Source: Day 23: A Long Walk

Full solution for today (spoilers!)

## Part 1

Find the longest non-overlapping path through a maze with walls (#) and one way paths (^v<>).

# AoC 2023 Day 22: Block Dropinator

## Source: Day 22: Sand Slabs

Full solution for today (spoilers!)

## Part 1

Given a series of 3D blocks, allow them to fall until the simulation is stable. Any cube of a block is sufficient to support another block, ignore rotations etc.

How many blocks are not the sole supporter for any other block?

# AoC 2023 Day 21: Step Step Stepinator

## Source: Day 21: Step Counter

Full solution for today (spoilers!)

## Part 1

Given a(n infinite) grid of walls #, count how many points can be reached by exactly 64 steps from a starting point.

# AoC 2023 Day 20: Flip-Flopinator

## Source: Day 20: Pulse Propagation

Full solution for today (spoilers!)

## Part 1

Simulate a virtual circuit with high and low pulses and four kinds of chips:

• Broadcast - Re-transmit all pulses
• Flip-flops - On a low pulse, toggle internal state; if it was on, send high; otherwise send low
• Conjunction - Remember input from each attached module; if all inputs were high, send a low, otherwise send high
• Output - Do nothing; just receive pulses

Count the product of low and high pulses sent after 1000 low inputs to broadcaster.