SCREEN 12 PRINT "Trage-Groei Fractal SloGro" PRINT "Slow growth fractal" PRINT "Ref: COMPUTER RECREATONS by A.K.Dewdney," PRINT "SCIENTIFIC AMERICAN December 1988" PRINT "******************************************" PRINT PRINT "Druk toets om te stoppen/Press a key to stop" PRINT "********************************************" PRINT : PRINT : PRINT : COLOR 10 PRINT " Credits: guido wuyts 1997" PRINT : PRINT : PRINT : COLOR 3 PRINT " -> Toets/Key...": COLOR 15 PLAY "o4l24d" SLEEP: a$ = INKEY$: a$ = "": COLOR 12 CLS Init: n% = 500: DIM mx(n%), my(n%) x0 = 320: y0 = 240 xx0 = 3: yy0 = 3: xmax = 3: ymax = 3: xmin = 3: ymin = 3 cnt% = 0: mx(cnt%) = x0: my(cnt%) = y0 RANDOMIZE TIMER dx = 4: dy = 4 LINE (x0 - dx, y0 - dy)-(x0 + dx, y0 + dy), 3, BF Nieuw: IF NOT INKEY$ = "" GOTO Einde x1 = x0: y1 = y0 IF xmin + xmax < ymin + ymax GOTO hor ELSE GOTO vert hor: IF xmax < xmin THEN x = x1 + 2 * dx * (xmax + 1) ELSE x = x1 - 2 * dx * (xmin + 1) END IF y = y1 + 2 * dy * (-ymin + INT(RND * (ymin + ymax))) GOTO Beeldaf vert: IF ymax < ymin THEN y = y1 + 2 * dy * (ymax + 1) ELSE y = y1 - 2 * dy * (ymin + 1) END IF x = x1 + 2 * dx * (-xmin + INT(RND * (xmin + xmax))) GOTO Beeldaf Beeldaf: LINE (x - dx, y - dy)-(x + dx, y + dy), 3, BF ChecCont: FOR tel% = 0 TO cnt% IF mx(tel%) = x AND my(tel%) = y THEN LINE (x - dx, y - dy)-(x + dx, y + dy), 3, BF: GOTO Beweeg IF ABS(x - mx(tel%)) = 2 * dx AND my(tel%) = y GOTO Teken IF ABS(y - my(tel%)) = 2 * dy AND mx(tel%) = x GOTO Teken NEXT tel% Beweeg: sel = RND: x1 = x: y1 = y IF sel <= .25 THEN x = x - 2 * dx IF .25 < sel AND sel <= .5 THEN y = y + 2 * dy IF .5 < sel AND sel <= .75 THEN x = x + 2 * dx IF .75 < sel THEN y = y - 2 * dy LINE (x1 - dx, y1 - dy)-(x1 + dx, y1 + dy), 0, BF'Wis IF x < x0 - 2 * dx * (xmin + xx0) OR x > x0 + 2 * dx * (xmax + xx0) GOTO Nieuw'Beperk zwerf IF y < y0 - 2 * dy * (ymin + yy0) OR y > y0 + 2 * dy * (ymax + yy0) GOTO Nieuw LINE (x - dx, y - dy)-(x + dx, y + dy), , BF 'NieuwPt GOTO ChecCont Teken: LINE (x - dx, y - dy)-(x + dx, y + dy), 3, BF'FixGroei cnt% = cnt% + 1 IF cnt% > n% GOTO Einde mx(cnt%) = x: my(cnt%) = y IF x < x0 - 2 * dx * xmin THEN xmin = INT((x0 - x) * .5 / dx) IF x > x0 + 2 * dx * xmax THEN xmax = INT((x - x0) * .5 / dx) IF y < y0 - 2 * dy * ymin THEN ymin = INT((y0 - y) * .5 / dy) IF y > y0 + 2 * dy * ymax THEN ymax = INT((y - y0) * .5 / dy) GOTO Nieuw Einde: BEEP END