Code Golf: Connecting the dots
- by ChristopheD
Description:
The input are multiple lines (terminated by a newline) which describe a 'field'. There are 'numbers' scattered across this field:
the numbers always start at 1
they follow the ordering of the natural numbers: every 'next number' is incremented with 1
every number is surrounded by (at least) one whitespace on it's left and right
Task:
Draw lines between these numbers in their natural order
(1 -> 2 -> 3 -> ...N) with the following characteristics:
replace a number with a '+' character
for horizontal lines: use '-'
for vertical lines: use '|'
going left and down or right and up: /
going left and up or right and down: \
Important note: When drawing lines of type 4 and 5 you can assume that :
(given points to connect with coordinates x1, y1 and x2, y2)
distance(x1,x2) == distance(y1,y2).
Have a look at the examples to see where you should 'attach' the lines. It is important to follow the order in which the dots are connected (newer lines can be drawn over older lines).
Sample input 1
9
10 8 7
6
5
11
13 12 3 4
14 15
16
1 2
Sample output 1
/+
/ |
/ |
+/ +--+
| +\
| \
| \+
/+ |
/ |
/+-------------+/ +---+
/ |
+--+ |
+ |
+--------------------------+
Sample input 2
4
2 3 5 6
1 8 7
Sample output 2
/+
/ |
/ |
/ |
/+------------------+/ +--------+\
/ \
+/ +--------------------------------------+
Winner: shortest solution (by code count). Input can be read via command line.