1: DECLARE SUB MakeGrid (Acuracy!) 2: DIM SHARED WhatISee(0 TO 9000) AS INTEGER 3: SCREEN 13 4: LINE (0, 0)-(160, 200), 12, BF 5: LINE (161, 0)-(320, 200), 4, BF 6: CIRCLE (160, 50), 25, 15 7: LINE (160, 72)-(160, 135) 8: LINE (160, 135)-(140, 155) 9: LINE (160, 135)-(180, 155) 10: LINE (160, 95)-(140, 80) 11: LINE (160, 95)-(180, 80) 12: MakeGrid 100 13: 14: 20 CLS 15: FOR q = 0 TO 9000 STEP 3 16: IF WhatISee(q) = 0 THEN ELSE PSET (WhatISee(q + 1), WhatISee(q + 2)), WhatISee(q): c = c + 1 17: NEXT q 18: LOCATE 1, 1: PRINT "Total instructions: "; c 19: END 20: RESUME NEXT 21: 22: SUB MakeGrid (Acuracy) 23: ON ERROR GOTO 20 24: DIM BackCnt(15) AS INTEGER 25: sz = ABS(Acuracy - 100) + 1 26: DEF SEG = &HA000 27: FOR x = 0 TO 320 STEP sz 28: FOR y = 0 TO 200 STEP sz 29: c = POINT(x + sz, y) 30: IF c <= 0 THEN GOTO 10 31: LINE (x, y)-(x + sz - 1, y + sz - 1), c, B 32: 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 33: 10 NEXT y 34: FOR m = 0 TO 15 35: IF BackCnt(m) > BigNum THEN BigNum = BackCnt(m): Bg = m 36: BackCnt(m) = 0 37: NEXT m 38: FOR z = (Cnt - INT(600 / sz)) TO (Cnt - INT(600 / sz)) + 600 STEP 3 39: IF WhatISee(z) = Bg THEN WhatISee(z) = 0 40: NEXT z 41: BigNum = 0 42: NEXT x 43: END SUB 44: |