Annoying bug that took ages to fix: for multi-execute, there may be
times where movements go in complete diagonals. In this case, we need
to move in the unit vector diagonal direction. So I modified
update-tail for this case. Never happens in round 1 lol.
Pretty interesting, functional idioms kinda fail here as there are no
nice functions I can think of for the single-knot-execute-line
`dotimes` section. I could use tail recursion with an optimisation
but this is pretty explicit. You can compare execute-lines to
execute-line to see which type of iteration fits you.