>>> I couldn't figure out a Perl-ish way of parsing it, >>> resorting to putting it all in a big 2D array and >>> scurrying around it. With lots of consistency >>> checking it takes about 5s to run on my 1.6GHz box >>> (yikes). > The problem is very similar to PCB tracks in electronics. The tracks are > the connections between the people, and the nodes are the people. The > orthogonal nature of the grid makes it fairly easy to parse... honest :P
I just wrote a small program to parse the chart line by line. It's roughly similar to the algorithm you mentioned. If somebody wants to have a look, the script is at http://www.stud.uni-karlsruhe.de/~usac/files/sexchart.pl - Karsten