$LIB VGA ON SCREEN 12 maxX = 640 maxY = 480 wurmer = 20 maxLaeufe = 200 rndRND = 10 minX= 1: maxCOL = 16: minRND = rndRND * .4: maxRND = rndRND * .6 Wurmlaenge = 60 DIM x%(1 TO wurmer): DIM y%(1 TO wurmer): DIM A%(1 TO wurmer): DIM Z%(1 TO wurmer): DIM F%(1 TO wurmer) DIM HUGE XSave%(1 TO wurmer, -Wurmlaenge TO maxLaeufe) DIM HUGE YSave%(1 TO wurmer, -Wurmlaenge TO maxLaeufe) RANDOMIZE TIMER DO IF j = maxLaeufe - 1 THEN j = 1 j = j + 1 IF j >= Wurmlaenge THEN FOR k = 1 TO wurmer PSET (XSave%(k, j - Wurmlaenge), YSave%(k, j - Wurmlaenge)), F%(k) - 8 NEXT END IF FOR k = 1 TO wurmer IF x%(k) > maxX OR y%(k) > maxY OR x%(k) < minX OR y%(k) < minX THEN x%(k) = RND * maxX y%(k) = RND * maxY F%(k) = RND * 7 + 8 + 1 END IF A%(k) = RND * rndRND Z%(k) = RND * rndRND IF A%(k) > maxRND THEN X%(k) = x%(k) + minX IF A%(k) < minRND THEN X%(k) = x%(k) - minX IF Z%(k) > maxRND THEN Y%(k) = y%(k) + minX IF Z%(k) < minRND THEN Y%(k) = y%(k) - minX XSave%(k, j) = x%(k) YSave%(k, j) = y%(k) FieldCol = POINT(x%(k), y%(k)) IF FieldCol > 0 THEN IF FieldCol < 8 THEN FieldCol = FieldCol + 8 F%(k) = FieldCol END IF PSET (x%(k), y%(k)), F%(k) NEXT LOOP UNTIL INKEY$ = CHR$(27) t = TIMER FOR x = 0 TO maxX FOR y = 0 TO maxY col = POINT(x, y) SELECT CASE col CASE -1: CASE 0: schw = schw + 1 CASE 1: blau = blau + 1 CASE 2: grun = grun + 1 CASE 3: cyan = cyan + 1 CASE 4: rot = rot + 1 CASE 5: mage = mage + 1 CASE 6: braun = braun + 1 CASE 7: grau = grau + 1 CASE 8: grau = grau + 1 CASE 9: blau = blau + 1 CASE 10: grun = grun + 1 CASE 11: cyan = cyan + 1 CASE 12: rot = rot + 1 CASE 13: mage = mage + 1 CASE 14: braun = braun + 1 CASE 15: grau = grau + 1 END SELECT NEXT IF x MOD 10 = 0 THEN LOCATE 30, 75: PRINT USING "###%"; x * y * 100 / (maxX * maxY); NEXT l = TIMER - t SCREEN 0 PRINT USING "Ergebnis (Zaehldauer: ####.# Sekunden):"; TIMER - t PRINT "様様様様様様様様様様様様様様様様様様様": PRINT PRINT USING "Blau : ###.##% "; blau * 100 / (maxX * maxY) PRINT USING "Grn : ###.##% "; grun * 100 / (maxX * maxY) PRINT USING "Cyan : ###.##% "; cyan * 100 / (maxX * maxY) PRINT USING "Rot : ###.##% "; rot * 100 / (maxX * maxY) PRINT USING "Magenta : ###.##% "; mage * 100 / (maxX * maxY) PRINT USING "Braun : ###.##% "; braun * 100 / (maxX * maxY) PRINT USING "Grau : ###.##% "; grau * 100 / (maxX * maxY) PRINT PRINT USING "Unbenutzt : ###.##% "; schw * 100 / (maxX * maxY)