DECLARE SUB MakeGrid (Acuracy!)
DIM SHARED WhatISee(0 TO 9000) AS INTEGER
SCREEN 13
LINE (0, 0)-(160, 200), 12, BF
LINE (161, 0)-(320, 200), 4, BF
CIRCLE (160, 50), 25, 15
LINE (160, 72)-(160, 135)
LINE (160, 135)-(140, 155)
LINE (160, 135)-(180, 155)
LINE (160, 95)-(140, 80)
LINE (160, 95)-(180, 80)
MakeGrid 100
20 CLS
FOR q = 0 TO 9000 STEP 3
IF WhatISee(q) = 0 THEN  ELSE PSET (WhatISee(q + 1), WhatISee(q + 2)), WhatISee(q)
NEXT q
END
RESUME NEXT

SUB MakeGrid (Acuracy)
'ON ERROR GOTO 20
DIM BackCnt(15) AS INTEGER
sz = ABS(Acuracy - 100) + 1
DEF SEG = &HA000
FOR x = 0 TO 320 STEP sz
FOR y = 0 TO 200 STEP sz
c = POINT(x + sz, y)
IF c <= 0 THEN GOTO 10
LINE (x, y)-(x + sz - 1, y + sz - 1), c, B
IF c = Bg THEN BackCnt(c) = BackCnt(c) + 1 ELSE WhatISee(Cnt) = c: WhatISee(Cnt + 1) = x: WhatISee(Cnt + 2) = y: Cnt = Cnt + 3: BackCnt(c) = BackCnt(c) + 1
10 NEXT y
FOR m = 0 TO 15
IF BackCnt(m) > BigNum THEN BigNum = BackCnt(m): Bg = m
NEXT m

FOR z = ((y + ((x) * 320)) - 200) TO ((y + ((x - 1) * 320)) - 200) + 600 STEP 3
IF z < 0 THEN z = 0
IF WhatISee(z) = Bg THEN WhatISee(z) = 0: LOCATE 1, 1: PRINT ((y + ((x - 1) * 320)) - 200)
NEXT z

FOR m = 0 TO 15: BackCnt(Bg) = 0: NEXT m
BigNum = 0
NEXT x
END SUB

