McCaw won the steps competition for part 2 and placed 2nd for part 3. Part 2:


Oh, some cool ideas here.
- Generated code to handle all the possible cases.
- Coming from both ends.
- Being able to handle all the necessary information with states + 5 heads.
- Reading the string, rewriting it 1 row above.
And part 3:


This one has a sort of exploding wave front. The 1st time a “=” is encountered, replace it with “~”, but also send some heads 1 row down. As long as a new “=” is encountered, keep doing that. This of course has to stop when all 10 heads are on different rows, so there’s a different mechanism to finish the deep ponds in that case. V’s and B’s to keep track of how much is left to do. Oh, and a funny “with the very deep ponds, keep 1 head on the top row, and when the deep pond is finished, let that head travel again, alone for a while”.


I don’t quite know what to say. It’s elegant. And a lot of people used similar techniques to get good scores.
Code
.