Solving Woodworm

Woodworm is a cute little PICO-8 puzzle game about a cute little worm… that eats wood. You can play it for free right now right here!

The goal is to turn this:

Level 1, before solving

Into this:

Level 1, after solving

There are a few rules to keep in mind:

  • The block (and the worm) are affected by gravity

  • The block can be split by into multiple pieces by eating it completely apart

    Demonstrating gravity

  • The worm can crawl up the side of blocks, so long as two (consecutive) segments of the worm are touching walls

    Demonstrating climbing

And that’s really it.

So let’s solve it!

read more...


Freshly (Frosted) Solved

And so it begins. Freshly Frosted It’s a cute little puzzle game about making a donut factory. It’s a lot like Solving Cosmic Express in that it’s a ‘puzzle on rails’, you are basically routing around the grid from source to target. In the way, we have to go to certain tiles in a certain order (in this case, to apply toppings to our donuts). Let’s do it! The first section (starting with Basic layout) is the final state of the solution.

read more...


AoC 2024 Day 25: Christmas Lockpickinator

Source: Day 25: Code Chronicle

Full solution for today (spoilers!).

Part 1

You are given a series of locks and keys (see below). How many unique (lock, key) are there that do not overlap (they do not have to fit perfectly).

A lock starts from the top. The entire top row is # and the entire bottom row is ..

#####
.####
.####
.####
.#.#.
.#...
.....

A key is the opposite:

.....
.....
.....
#....
#.#..
#.#.#
#####

read more...


AoC 2024 Day 23: LAN Partinator

Source: Day 23: LAN Party

Full solution for today (spoilers!).

Part 1

You are given the edges of an undirected graph. Count how many complete subgraphs of size three exist that contain one or more starting with the letter t.

Aside: Games with local (but not hotseat) multiplayer have gotten rather rarer over the years… how many people still know what a LAN party is/was?

read more...


AoC 2024 Day 22: Xorshiftinator

Source: Day 22: Monkey Market

Full solution for today (spoilers!).

Part 1

Implement a PRNG with the following update function:

  1. Multiply by 64, xor with the previous value, modulo 16777216
  2. Divide by 32, xor with the previous value (from step 1), modulo 16777216
  3. Multiply by 2048, xor with the previous value (from step 2), module 16777216

For each of a series of seeds, sum the 2000th generated number.

read more...


AoC 2024 Day 21: Busy Workinator

Source: Day 21: Keypad Conundrum

Full solution for today (spoilers!).

Part 1

You are trying to type a code on a keypad:

+---+---+---+
| 7 | 8 | 9 |
+---+---+---+
| 4 | 5 | 6 |
+---+---+---+
| 1 | 2 | 3 |
+---+---+---+
    | 0 | A |
    +---+---+

But you cannot type directly. Instead, you can control a pointer on the keypad with arrow keys:

    +---+---+
    | ^ | A |
+---+---+---+
| < | v | > |
+---+---+---+

Whenever you type a ^ on the arrow keys, the pointer on the keypad will move up one, etc. When you type A, then the pointer on the keypad will type whatever it is pointing at.

But that’s not enough either. Add a second keypad. And then a third, that is the one you are actually controlling.

For each output sequence multiple the length of the minimum input sequence needed to generate it by the numeric value of the input sequence (ignoring any A); sum these.

Note: Moving off any keypad or into the blank spaces is an error.

read more...


AoC 2024 Day 20: Shadow Catinator

Source: Day 20: Race Condition

Full solution for today (spoilers!).

Part 1

Given a maze with exactly one path, find how many single walls you can walk through (remove) that shorten the best path by at least 100 units.

read more...