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: 20 CLS 14: FOR q = 0 TO 9000 STEP 3 15: IF WhatISee(q) = 0 THEN ELSE PSET (WhatISee(q + 1), WhatISee(q + 2)), WhatISee(q) 16: NEXT q 17: END 18: RESUME NEXT 19: 20: SUB MakeGrid (Acuracy) 21: 'ON ERROR GOTO 20 22: DIM BackCnt(15) AS INTEGER 23: sz = ABS(Acuracy - 100) + 1 24: DEF SEG = &HA000 25: FOR x = 0 TO 320 STEP sz 26: FOR y = 0 TO 200 STEP sz 27: c = POINT(x + sz, y) 28: IF c <= 0 THEN GOTO 10 29: LINE (x, y)-(x + sz - 1, y + sz - 1), c, B 30: 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 31: 10 NEXT y 32: FOR m = 0 TO 15 33: IF BackCnt(m) > BigNum THEN BigNum = BackCnt(m): Bg = m 34: NEXT m 35: 36: FOR z = ((y + ((x) * 320)) - 200) TO ((y + ((x - 1) * 320)) - 200) + 600 STEP 3 37: IF z < 0 THEN z = 0 38: IF WhatISee(z) = Bg THEN WhatISee(z) = 0: LOCATE 1, 1: PRINT ((y + ((x - 1) * 320)) - 200) 39: NEXT z 40: 41: FOR m = 0 TO 15: BackCnt(Bg) = 0: NEXT m 42: BigNum = 0 43: NEXT x 44: END SUB 45: |