RosettaCodeData/Task/Langtons-ant/Phix/langtons-ant.phix
2016-12-05 23:44:36 +01:00

15 lines
502 B
Text

sequence grid = repeat(repeat(' ',100),100)
integer aX = 50, aY = 50,
gXY, angle = 1 -- ' '/'#'; 0,1,2,3 = NESW
constant dX = {0,-1,0,1} -- (dY = reverse(dX))
while aX>=1 and aX<=100
and aY>=1 and aY<=100 do
gXY = grid[aX][aY]
grid[aX][aY] = 67-gXY -- ' '<=>'#', aka 32<->35
angle = mod(angle+2*gXY+3,4) -- +/-1, ie 0,1,2,3 -> 1,2,3,0 or 3,0,1,2
aX += dX[angle+1]
aY += dX[4-angle]
end while
puts(1,join(grid,"\n"))