Langton's ant: Difference between revisions

m
Line 1,744:
 
=={{header|Easyprog.online}}==
[https://easyprog.online/ide/run.html?code=len%20f%5B%5D%20100%20%2A%20100%0Afunc%20show%20.%20.%0Afor%20r20y%20range%20100%0Afor%20c20x%20range%20100%0Aif%20f%5Br5By%20%2A%20100%20%2B%20c20x%5D%20%3D%201%0Amove%20c20x%20r20y%0Arect%201%201%0A.%0A.%0A.%0A.%0Afunc%20run%20x%20y%20dir%20.%20.%0Adx%5B%5D%20%3D%20%5B%200%201%200%20-1%20%5D%0Ady%5B%5D%20%3D%20%5B%20-1%200%201%200%20%5D%0Afunc%20run%20x%20y%20.%20.%0Awhile%20x%20%3E%3D%200%20and%20x%20%3C%20100%20and%20y%20%3E%3D%200%20and%20y%20%3C%20100%0Ab0Av%20%3D%20f%5B1005By%20%2A%20y20100%20%2B%20x%5D%0Af%5B1005By%20%2A%20y20100%20%2B%20x%5D%20%3D%201%20-%20b20v%0Ad0Adir%20%2B%3D%201%20%2B%202%20%2A%20b20v%0Ad0Adir%20%3D%20d20dir%20mod%204%0Ax%20%2B%3D%20dx%5Bd5Bdir%5D%0Ay%20%2B%3D%20dy%5Bd5Bdir%5D%0A.%0A.%0Acall%20run%2070%2040%200%0Acall%20show Run it]
 
<lang>len f[] 100 * 100
func show . .
for ry range 100
for cx range 100
if f[ry * 100 + cx] = 1
move cx ry
rect 1 1
.
Line 1,757:
.
.
dx[]func =run [x 0y 1dir 0. -1 ].
dy dx[] = [ -1 0 1 0 -1 ]
dy[] = [ -1 0 1 0 ]
func run x y . .
while x >= 0 and x < 100 and y >= 0 and y < 100
bv = f[100y * y100 + x]
f[100y * y100 + x] = 1 - bv
ddir += 1 + 2 * bv
ddir = ddir mod 4
x += dx[ddir]
y += dy[ddir]
.
.
call run 70 40 0
call show</lang>
 
2,083

edits