我ながらとてもとても上出来すぎてハイテンションになりました。 渦巻きが今何周目か(layer)を、t の平方根を切り下げることで割り出しています。 また、渦巻きは奇数周のときは右上へ進み、偶数周のときは左下へ進むようにlayerを2で割った余りを使って、1 と-1が交互に入れ替わるようにしています。 角を曲がる判定に、マイナスの値を強制的に 0 にする、(x + |x|) / 2を使っています。 これにより条件分岐を使わずに、角につくまでは0で角を曲がってから歩数をカウントする仕組みを作りました。 最後は、角を曲がった瞬間に y の動きが止まり、代わりに x が動き出すように、また、その逆のプログラムも作りました。