## Pages

### print "squashed-circle" diamond

There's been a bit of a buzz about the Print-Diamond practice recently. I recall doing this a couple of years ago with Johannes Brodwall. In cyber-dojo naturally. We took a wrong turn and were making a thorough mess of it. I vividly recall Johannes saying:
This is too difficult. We're doing it wrong.
I love that. If it's difficult you're probably doing it wrong. We gave up and took a break. We got a really nice Indian take away. Then we went back to Print-Diamond. Very quickly we came up with a new idea. We imagined the diamond lying in the center of an x,y axis. The Print-Diamond of 'C' would therefore look like this:
```
-2 -1  0 +1 +2

-2    -  -  A  -  -
-1    -  B  -  B  -
0    C  -  -  -  C
+1    -  B  -  B  -
+2    -  -  A  -  -

```

Viewed like this you can think of the Diamond as a sort of squashed circle with the A,B,C characters all lying on the circumference. From here it was a short step to this:
```(-2..+2).map{|row|
(-2..+2).map{|col|
row.abs + col.abs == 2 ? 'X' : '-'
}.join
}
```

which, when puts'd gives:
```--X--
-X-X-
X---X
-X-X-
--X--
```

And we knew we were on our way.
Let's hear it for Indian Food Driven Development!