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 (Ruby):
(-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 Curry Driven Development!
No comments:
Post a Comment