Uhm, there is no need to build the wall one block a time. What you can do just jump directly to the next coordinate pair by just doing [x + dx * dist, y + dy * dist] where dy is the direction and dist is the lenght given in the instructions (what you call steps). You will only have about half a thousand of the coordinate pairs. The lenght of the wall you can get just by adding all the distances from the instructions. Runs in a fraction of a second.
Uhm, there is no need to build the wall one block a time. What you can do just jump directly to the next coordinate pair by just doing [x + dx * dist, y + dy * dist] where dy is the direction and dist is the lenght given in the instructions (what you call steps). You will only have about half a thousand of the coordinate pairs. The lenght of the wall you can get just by adding all the distances from the instructions. Runs in a fraction of a second.
Oh man! Thanks for pointing this out! Very cool.