72 lines
1,007 B
Text
72 lines
1,007 B
Text
DEFINE DIRN="0"
|
|
DEFINE DIRE="1"
|
|
DEFINE DIRS="2"
|
|
DEFINE DIRW="3"
|
|
DEFINE BLACK="1"
|
|
DEFINE WHITE="2"
|
|
DEFINE MAXX="159"
|
|
DEFINE MAXY="95"
|
|
|
|
BYTE FUNC TurnLeft(BYTE dir)
|
|
IF dir=DIRN THEN
|
|
RETURN (DIRW)
|
|
FI
|
|
RETURN (dir-1)
|
|
|
|
BYTE FUNC TurnRight(BYTE dir)
|
|
IF dir=DIRW THEN
|
|
RETURN (DIRN)
|
|
FI
|
|
RETURN (dir+1)
|
|
|
|
PROC DrawAnt(INT x,y)
|
|
BYTE c,dir
|
|
|
|
dir=DIRN
|
|
|
|
DO
|
|
c=Locate(x,y)
|
|
|
|
IF c=BLACK THEN
|
|
Color=WHITE
|
|
Plot(x,y)
|
|
dir=TurnLeft(dir)
|
|
ELSE
|
|
Color=BLACK
|
|
Plot(x,y)
|
|
dir=TurnRight(dir)
|
|
FI
|
|
IF dir=DIRN THEN
|
|
y==-1
|
|
IF y<0 THEN EXIT FI
|
|
ELSEIF dir=DIRE THEN
|
|
x==+1
|
|
IF X>MAXX THEN EXIT FI
|
|
ELSEIF dir=DIRS THEN
|
|
y==+1
|
|
IF Y>MAXY THEN EXIT FI
|
|
ELSE
|
|
x==-1
|
|
IF x<0 THEN EXIT FI
|
|
FI
|
|
OD
|
|
RETURN
|
|
|
|
PROC Main()
|
|
BYTE CH=$02FC
|
|
BYTE y
|
|
|
|
Graphics(7+16)
|
|
SetColor(0,0,2)
|
|
SetColor(1,0,12)
|
|
Color=2
|
|
FOR y=0 TO MAXY
|
|
DO
|
|
Plot(0,y) DrawTo(MAXX,y)
|
|
OD
|
|
|
|
DrawAnt(80,48)
|
|
|
|
DO UNTIL CH#$FF OD
|
|
CH=$FF
|
|
RETURN
|