# AoC 2016 Day 18: Its A Trap

### Source: Like a Rogue

Part 1: Starting with a sequence of . and ^, generate additional rows using the rules based on the three characters above the new position.

• ^^. -> ^
• .^^ -> ^
• ^.. -> ^
• ..^ -> ^
• Otherwise -> .

How many safe tiles (.) are there after 40 generations?

# Let it snow!

♫ Oh the weather outside is frightful1… ♫

# Regular Expression Fractals

Oops, turns out I haven’t had a post in a good long while. Before it gets even longer, I figure that I should take one off my backlog and just write it up, even if it is a little on the shorter side.

Today’s post was inspired by this post on /r/dailyprogrammer a month ago today: Challenge #178 [Hard] Regular Expression Fractals. The basic idea is that you are going to take a rectangular region and divide it into four quadrants, again and again, recording the path as you go (images from that post):

# Look and Say

Random quick post today1. Basically, we want to write code to generate what’s known as Look and Say sequence:

To generate a member of the sequence from the previous member, read off the digits of the previous member, counting the number of digits in groups of the same digit. For example:

• 1 is read off as “one 1” or 11.
• 11 is read off as “two 1s” or 21.
• 21 is read off as “one 2, then one 1” or 1211.
• 1211 is read off as “one 1, then one 2, then two 1s” or 111221.
• 111221 is read off as “three 1s, then two 2s, then one 1” or 312211.

# Ludum Dare 30: Demo mode

Quick update this morning: I managed to get a ‘demo mode’ working. Now when you first start the game, the boxes will be whizzing around in the background giving you an idea of what you’re about to get yourself into!

# Ludum Dare 30: Programmer art and simple AI

A few hours later and we’ve already finished (or at least made good progress on) two of the goals that I was hoping for:

• AI players; at the very least one that moves randomly, but optimally several different kinds
• Pending the previous, a selector on the options screen that can turn each player either off, on, or to any of the current AIs
• Stylings around the page; probably some sort of thick border that bleeds a little in and out, looking different per player

# Ludum Dare 30: 24 hours

Here we are, 24 hours into the competition.

A lot of the last few hours has been spent doing a fair amount of restructing. Before, I had a single ‘thread’1 for each of the tiles, along with another thread listening for user input. Unfortunately though, that lead to all sorts of race conditions. Specifically, whenever two tiles overlapped, it was often the case that one was doing the falling step (which copies from one internal buffer to another) while the other was in the swap step (which copies from tile to another). Then after the first finished, it would copy the second buffer over… overwriting anything that had been swapped.

Oops.

# Ludum Dare 30: Hints of a game

We’re getting there. 18 hours in and I have the first hints of what might actually be a game…