Random quick post today. 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.
Today's post comes from a long line of 'inspired by posts' all pretty much leading back (so far as I can tell) to this post by j.tarbell: invader.procedural from 2003.
The basic idea is that we want to generate 'invaders' in the style of space invaders. Except we don't want 10 or 20, we want tens of thousands. So how do we do it? Well, take a look at this:
Onwards and upwards! For today's chess puzzle, let's take a first crack at the Knight's Tour
After two weeks, it seems only right that we actually get around to a real chess puzzle. First on the list: the 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?
Now that we've got Ludum Dare out of the way, back to chess! Last time, we defined all of the pieces, which is all well and good, but what we really need is a board. More specifically, we want something that can:
- Represent an 8x8 chess board, storing the location of pieces (including the owner of each)
- Add logic for collisions, so that when moving a piece, you cannot move through others or capture allies
- Add rendering code to display the current chess board (must be flexible enough to handle arbitrary glyphs for fairy chess pieces)
I think that's about enough for the moment. Let's do it!