38 lines
911 B
Text
38 lines
911 B
Text
100 REM Langton!'s ant
|
|
110 REM ** Simulation
|
|
120 DIM Board(0 TO 99, 0 TO 99)
|
|
130 LET W = UBOUND(Board, 1) + 1
|
|
140 LET H = UBOUND(Board, 2) + 1
|
|
150 REM Start in the middle, facing East
|
|
160 LET X = INT(W / 2)
|
|
170 LET Y = INT(H / 2)
|
|
180 LET Dir = 0
|
|
190 DO
|
|
200 IF Board(X, Y) <> 0 THEN
|
|
210 LET Dir = Dir - 1
|
|
220 LET Board(X, Y) = 0
|
|
230 ELSE
|
|
240 LET Dir = Dir + 1
|
|
250 LET Board(X, Y) = 1
|
|
260 END IF
|
|
270 SELECT CASE MOD(Dir, 4)
|
|
280 CASE 0
|
|
290 LET X = X + 1
|
|
300 CASE 1
|
|
310 LET Y = Y + 1
|
|
320 CASE 2
|
|
330 LET X = X - 1
|
|
340 CASE 3
|
|
350 LET Y = Y - 1
|
|
360 END SELECT
|
|
370 LOOP WHILE X >= 0 AND X < W AND Y >= 0 AND Y < H
|
|
380 REM ** Visualization
|
|
390 SET WINDOW 0, W, 0, H
|
|
400 SET AREA COLOR 0
|
|
410 SET POINT COLOR 1
|
|
420 FOR X = 0 TO W - 1
|
|
430 FOR Y = 0 TO H - 1
|
|
440 IF Board(X, Y) <> 0 THEN GRAPH POINTS: X, Y
|
|
450 NEXT Y
|
|
460 NEXT X
|
|
470 END
|