22 lines
880 B
Plaintext
22 lines
880 B
Plaintext
REM Implementation of Langton's ant for Rosetta Code
|
|
fieldsize%=100
|
|
REM Being pedantic, this will actually result in a field of 101 square,
|
|
REM since arrays start at 0, and my implementation allows them to use it
|
|
DIM field&(fieldsize%,fieldsize%) : REM variables with an & suffix are byte variables
|
|
x%=fieldsize%/2
|
|
y%=fieldsize%/2
|
|
d%=0
|
|
REPEAT
|
|
IF field&(x%,y%)=0 THEN field&(x%,y%)=1:d%-=1 ELSE field&(x%,y%)=0:d%+=1
|
|
GCOL 15*field&(x%,y%)
|
|
PLOT 69,x%*2,y%*2 :REM for historical reasons there are two "plot points" per pixel
|
|
d%=(d%+4) MOD 4 :REM ensure direction is always between 0 and 3
|
|
CASE d% OF
|
|
WHEN 0:y%+=1
|
|
WHEN 1:x%+=1
|
|
WHEN 2:y%-=1
|
|
WHEN 3:x%-=1
|
|
ENDCASE
|
|
UNTIL x%>fieldsize% OR x%<0 OR y%>fieldsize% OR y%<0
|
|
END
|