SCREEN 12 PRINT "Toevalsgroei." PRINT "groeibasis (plaatsen al dan niet bezet) = bovenaan (y=0)" PRINT "Volgende y-waarden: voor (x,y): check bezetting x-1,x, en x+1 van rij y-1" PRINT "indien minstens ‚‚n bezet, dan toevalsbezetting (x,y)" PRINT PRINT "Random growth." PRINT "Growth base at random = above, at y=0" PRINT "NEXT y: FOR x: check occupancy x-1, x, and x+1 of row y-1" PRINT "if at least 1 occupancy, then random (yes/no) occupancy (x,y)" PRINT : PRINT : PRINT : COLOR 10 PRINT " Credits: guido wuyts 1997" PRINT : PRINT : PRINT : COLOR 3 PRINT " -> Toets/Key...": COLOR 15 PLAY "o3l24d" SLEEP CLS '*************************************************************************** x0 = 20: y0 = 20: x1 = 620: y1 = 420 RANDOMIZE TIMER begin: PLAY "o3l24d" INPUT "Afmeting hokjes / Size cells (0=END) : ", dx IF dx = 0 THEN END CLS dy = dx '''dikte vierkantjes (1=pixels) nx% = INT((x1 - x0) / dx) ny% = INT((y1 - y0) / dy) REDIM z0(nx%), z(nx%), col(3) AS INTEGER col(0) = RND * 15 + 1 FOR i = 1 TO 3 tos: col(i) = RND * 15 + 1 FOR j = 0 TO i - 1 IF col(i) = col(j) THEN GOTO tos NEXT j NEXT i FOR x% = 0 TO nx% IF RND <= .5 THEN GOTO volg1 z0(x%) = 1 xx = x0 + x% * dx yy = y0 LINE (xx, yy)-(xx + dx - 1, yy + dy - 1), col(0), BF volg1: NEXT x% FOR y% = 1 TO ny% FOR x% = 1 TO nx% - 1 z = z0(x% - 1) + z0(x%) + z0(x% + 1) IF z = 0 THEN GOTO volg2 IF RND <= .5 THEN GOTO volg2 '''verander waarde van deze limiet! z(x%) = 1 xx = x0 + x% * dx yy = y0 + y% * dy LINE (xx, yy)-(xx + dx - 1, yy + dy - 1), col(z), BF volg2: NEXT x% FOR x% = 0 TO nx% z0(x%) = z(x%) tel% = tel% + z(x%) z(x%) = 0 NEXT x% IF tel% = 0 THEN GOTO begin tel% = 0 NEXT y% GOTO begin END