Tagged as challenge

Written on 2018-01-30

Wang tiles are a collection
of oriented squares with colored edges such that when you place the
squares side-by-side with matching colors, the plane will tile
aperiodically. That is to say, *without rotating or reflecting the
tiles*, when placed according to the color matching rule, repetitions
of tiles cannot occur within contiguous sections of the plane, as soon
as the sections are large enough.

Wang tiles are specified by listing their colors starting with the top edge and going clockwise. One set of Wang tiles consists of 13 tiles using 4 colors. The tiles are listed below.

```
Wang Tiles
----------
RRRG
BRBG Example Tile: RGBW
RGGG
WBRB Red
BBWB +----+
WWRW | | Green
RGBW White | |
BWBR +----+
BRWR Blue
GGBR
RWRG
```

Write a program that generates a random $M\times N$ rectangle of Wang tiles.

Suppose the *centers* of the squares are placed in the plane at
integer lattice points. Then we can identify each square in the plane
by its center.

Write a function `(spiral n)`

which gives the $n$th coordinate of a
spiral starting at $(0, 0)$ to $(1, 0)$ and proceeding
counterclockwise. The first few values are:

```
0 => (0, 0) 3 => (0, 1) 6 => (-1, -1)
1 => (1, 0) 4 => (-1, 1) 7 => (0, -1)
2 => (1, 1) 5 => (-1, 0) 8 => (1, -1)
```

With this, write a function `(wang-spiral n)`

which produces a Wang
tiling valid on the coordinates `(spiral 0)`

to `(spiral (- n 1))`

.

Draw your artwork.