# AoC 2016 Day 24: Venti

### Source: Air Duct Spelunking

Part 1:Given a map of the form:`########### #0.1.....2# #.#######.# #4.......3# ###########`

Find the shortest route to visit each of the points, starting at

`0`

.

Part 1:Given a map of the form:`########### #0.1.....2# #.#######.# #4.......3# ###########`

Find the shortest route to visit each of the points, starting at

`0`

.

Part 1:Create a 4x4 grid of rooms with doors`U`

p,`D`

own,`L`

eft, and`R`

ight from each location. To determine if a door is currently open:

- Calculate
`MD5(salt + sequence)`

where sequence is a string containing any combination of`UDLR`

depending on how you got to this room- The first four hex values represent the doors
`U`

p,`D`

own,`L`

eft, and`R`

ight respectively:`bcdef`

means open; anything else is closedFind the shortest path from

`(0, 0)`

to`(3, 3)`

.

Part 1:Input will be a list of the following form:

- The first floor contains a hydrogen-compatible microchip and a lithium-compatible microchip.
- The second floor contains a hydrogen generator.
- The third floor contains a lithium generator.
- The fourth floor contains nothing relevant.
You have an elevator that can move exactly 1 or 2 items. You can only leave a microchip on a floor with a non-matching generator if a matching generator is also present.

Move all items to the top (4th) floor.

Based on a /r/dailyprogrammer puzzle: Takuzu solver.

Basically, Takuzu is a logic puzzle similar to Sudoku. You are given a grid partially filled with 0s and 1s. You have to fill in the rest of the grid according to three simple rules:

- You cannot have more than three of the same number in a line
- Each column must have an equal number of 0s and 1s
^{1} - No two rows or no two columns can be identical

Thus, if you have a puzzle like this:

```
0.01.1
0....1
..00..
..00..
1....0
10.0.0
```

One valid solution (most puzzles should have only a single valid answer, but that doesn’t always seem to be the case):

```
010101
001101
110010
010011
101100
101010
```

Let’s do it!

It’s been a while^{1}, but I’m back. Today’s post is inspired by a post from /r/dailyprogrammer almost a month ago now: Challenge #183 [Intermediate] Edge Matching Tile Puzzle. Basically, we’re going to solve puzzles like this:

If you look carefully, the tiles are the same between the two, although they might be rotated.

Onwards and upwards! For today’s chess puzzle, let’s take a first crack at the Knight's Tour^{1}

After two weeks, it seems only right that we actually get around to a real chess puzzle. First on the list: Eight queens puzzle.

Specifically, how do you place n queens on an n by n chess board such that no pair of queens can attack one another?

Ever been to Cracker Barrel? Remember that peg game? It seems that rather a few people are interested in how to solve it: Google. Let’s do that.

Yesterday’s post at /r/dailyprogrammer managed to pique my interest^{1}:

A triangle on a flat plane is described by its angles and side lengths, and you don’t need all of the angles and side lengths to work out everything about the triangle. (This is the same as last time.) However, this time, the triangle will not necessarily have a right angle. This is where more trigonometry comes in. Break out your trig again, people.

Yesterday, the daily programmer Subreddit had a post that mirrored a problem I’ve often seen before: the idea that if you follow first links ((With some caveats)) on Wikipedia, you eventually end with Philosophy. For example, if you follow the first links from Molecule, you get the following path:

Molecule → Atom → Matter → Rest Mass → Invariant Mass → Energy → Kinetic Energy → Physics → Natural Philosophy → Philosophy