SCREEN 12 t = TIMER '''kloktest WHILE TIMER - t < 1: tel = tel + 1: WEND cpu = INT(tel / 500): IF cpu < 1 THEN cpu = 1 '''500=386SX-25 PLAY "l21o4c+ga-cd" COLOR 13: LOCATE 2, 1 PRINT " WORMwormWORMwormWORMwormWORMwormWORMworm" PRINT COLOR 11: PRINT " שששששששששש" COLOR 10: PRINT " רררררררררר" COLOR 11: PRINT " oooooooooo" COLOR 10: PRINT " 0000000000" COLOR 7: LOCATE 10, 1 PRINT " -> aantal wormringen..................... <- & ->" PRINT " -> grootte wormringen..................... " + CHR$(24) + " & " + CHR$(25) PRINT " -> afstand tussen wormringen......... INSERT & DELETE" PRINT " -> snelheid worm...................... HOME & END" PRINT " -> grootte wormkop.................... PgUp & PgDn" PRINT " -> wendbaarheid worm................... '+' & '-'" PRINT " -> kleur wormringen en -kop............ '0' & '.'" PRINT " -> tonen wormpad...................... F10 (toggel)" PRINT " -> cyclen wormkleur................... F11 (toggel)" PRINT " -> wissen wormringen.................. F12 (toggel)" PRINT " -> default instellingen................... ESC" PRINT " -> nieuw scherm........................... SPATIE" PRINT " -> STOP................................... ENTER" COLOR 14: LOCATE 25, 17: PRINT "Credits: guido wuyts 1995" leng% = 10 '''wormpje lmax% = 50 '''max. lengte DIM x%(lmax%), y%(lmax%) '''wormringcentrum r% = 5: str = 1 '''wormringstraal ds% = 8 '''ringafstand pi = ATN(1) * 4: alf = 0: dalf = 1 '''beweeglijkheidshoek wrm% = 11: whd% = 13 '''wormkleuren dummax% = 10 '''wachtlus vlag% = 0 '''print info wis% = 0 '''wissen cyc% = 0 '''cyclen pad% = 0 '''wormpad RANDOMIZE TIMER herbegin: x0% = 440: y0% = 240 x%(0) = x0%: y%(0) = y0% Begin: FOR i% = 1 TO lmax% alf = alf - dalf + RND * 2 * dalf x%(i%) = x%(i% - 1) + ds% * COS(alf): y%(i%) = y%(i% - 1) + ds% * SIN(alf) NEXT i% PLAY "o4l12d": col = 11: scr% = 4 '''wacht op toets WHILE a$ = "" COLOR col: LOCATE 28, 18: PRINT " -> Druk een toets..." tijd = TIMER WHILE TIMER - tijd < .5: WEND '''knipperlus a$ = INKEY$ IF col = 11 THEN col = 5 ELSE col = 11 WEND CLS LINE (0, 16)-(640, 480), scr%, BF a$ = "" COLOR wrm%: LOCATE 1, 1: PRINT "WORM" PLAY "l21o4c+ga-cd" FOR i% = 1 TO leng% CIRCLE (x%(i%), y%(i%)), r%, wrm%: PSET (x%(i%), y%(i%)), whd% NEXT i% Beweeg: IF pad% = 0 THEN col% = 0 ELSE col% = scr% IF wis% = 0 THEN CIRCLE (x%(0), y%(0)), r%, col%: PSET (x%(0), y%(0)), col% FOR i% = 0 TO lmax% - 1 x%(i%) = x%(i% + 1): y%(i%) = y%(i% + 1) NEXT i% alf = alf - dalf + RND * 2 * dalf x%(lmax%) = x%(lmax%) + ds% * COS(alf) y%(lmax%) = y%(lmax%) + ds% * SIN(alf) CheckPlaats: rr = r% * str IF x%(lmax%) > 640 - rr THEN x%(lmax%) = 640 - rr IF x%(lmax%) < rr THEN x%(lmax%) = rr IF y%(lmax%) > 480 - rr THEN y%(lmax%) = 480 - rr IF y%(lmax%) < rr + 16 THEN y%(lmax%) = rr + 16 IF cyc% = 1 THEN wrm% = (wrm% + 1) MOD 15 IF wrm% MOD 8 = 0 THEN wrm% = wrm% + 1 END IF CIRCLE (x%(leng% - 1), y%(leng% - 1)), rr, scr% CIRCLE (x%(leng% - 1), y%(leng% - 1)), r%, wrm% CIRCLE (x%(leng%), y%(leng%)), rr, whd% PSET (x%(leng%), y%(leng%)), whd% a$ = INKEY$ SELECT CASE a$ CASE CHR$(0) + "K" '''verkort met een ring leng% = leng% - 1 IF leng% < 1 THEN leng% = 1 c% = wrm%: IF c% = 0 THEN c% = 15 COLOR c%: LOCATE 1, 1: PRINT USING "L =###"; leng% tijd = TIMER: vlag% = 1 CASE CHR$(0) + "M" '''verleng met een ring leng% = leng% + 1 IF leng% > lmax% THEN leng% = lmax% c% = wrm%: IF c% = 0 THEN c% = 15 COLOR c%: LOCATE 1, 1: PRINT USING "L =###"; leng% tijd = TIMER: vlag% = 1 CASE CHR$(0) + "O" ''' vertraag met twee IF dummax% < 10000 THEN dummax% = dummax% * 2 COLOR 7: LOCATE 1, 1: PRINT USING " #####"; dummax% tijd = TIMER: vlag% = 1 CASE CHR$(0) + "G" ''' versnel met twee IF dummax% > 1 THEN dummax% = dummax% * .5 ELSE dummax% = 1 COLOR 7: LOCATE 1, 1: PRINT USING " #####"; dummax% tijd = TIMER: vlag% = 1 CASE CHR$(0) + "H" '''vergroot ringen met 1 IF r% < 20 THEN r% = r% + 1 c% = wrm%: IF c% = 0 THEN c% = 15 COLOR c%: LOCATE 1, 1: PRINT USING "r =###"; r% tijd = TIMER: vlag% = 1 CASE CHR$(0) + "P" '''verklein ringen met een IF r% > 1 THEN r% = r% - 1 c% = wrm%: IF c% = 0 THEN c% = 15 COLOR c%: LOCATE 1, 1: PRINT USING "r =###"; r% tijd = TIMER: vlag% = 1 CASE " " '''nieuw scherm CLS scr% = (scr% + 1) MOD 15 LINE (0, 16)-(640, 480), scr%, BF c% = scr%: IF c% = 0 THEN c% = 15 COLOR c%: LOCATE 1, 1: PRINT USING "## "; scr% tijd = TIMER: vlag% = 1 CASE "0" '''kleur ringen wrm% = (wrm% + 1) MOD 16 c% = wrm%: IF c% = 0 THEN c% = 15 COLOR c%: LOCATE 1, 1: PRINT USING "## "; wrm% tijd = TIMER: vlag% = 1 CASE "." '''kleur kop whd% = (whd% + 1) MOD 16 c% = whd%: IF c% = 0 THEN c% = 15 COLOR c%: LOCATE 1, 1: PRINT USING "## "; whd% tijd = TIMER: vlag% = 1 CASE CHR$(0) + "I" '''vergroot kop met .1 IF str < 2 THEN str = str + .1 c% = whd%: IF c% = 0 THEN c% = 15 COLOR c%: LOCATE 1, 1: PRINT USING "###% "; str * 100 tijd = TIMER: vlag% = 1 CASE CHR$(0) + "Q" '''verklein kop met .1 IF str > 1 THEN str = str - .1 c% = whd%: IF c% = 0 THEN c% = 15 COLOR c%: LOCATE 1, 1: PRINT USING "###% "; str * 100 tijd = TIMER: vlag% = 1 CASE CHR$(0) + "R" '''vergroot ringafstand met 1 IF ds% < 40 THEN ds% = ds% + 1 c% = wrm%: IF c% = 0 THEN c% = 15 COLOR c%: LOCATE 1, 1: PRINT USING "### "; ds% tijd = TIMER: vlag% = 1 CASE CHR$(0) + "S" '''verklein ringafstand met 1 IF ds% > 1 THEN ds% = ds% - 1 c% = wrm%: IF c% = 0 THEN c% = 15 COLOR c%: LOCATE 1, 1: PRINT USING "### "; ds% tijd = TIMER: vlag% = 1 CASE CHR$(0) + CHR$(134) '''wissen of niet IF wis% = 0 THEN wis% = 1 ELSE wis% = 0 c% = 7 COLOR c%: LOCATE 1, 1: PRINT "wissen" tijd = TIMER: vlag% = 1 CASE CHR$(0) + CHR$(133) '''regenboog IF cyc% = 0 THEN cyc% = 1 ELSE cyc% = 0 c% = 7 COLOR c%: LOCATE 1, 1: PRINT "cyclen" tijd = TIMER: vlag% = 1 CASE CHR$(0) + "D" '''tonen wormpad IF pad% = 0 THEN pad% = 1 ELSE pad% = 0 c% = 7 COLOR c%: LOCATE 1, 1: PRINT "wrmpad" tijd = TIMER: vlag% = 1 CASE "+" '''vergroot beweeglijkheidshoek met .1 IF dalf < 2 THEN dalf = dalf + .1 c% = wrm%: IF c% = 0 THEN c% = 15 COLOR c%: LOCATE 1, 1: PRINT USING "###% "; dalf * 100 tijd = TIMER: vlag% = 1 CASE "-" '''verklein beweeglijkheidshoek met .1 IF dalf > .5 THEN dalf = dalf - .1 c% = wrm%: IF c% = 0 THEN c% = 15 COLOR c%: LOCATE 1, 1: PRINT USING "###% "; dalf * 100 tijd = TIMER: vlag% = 1 CASE CHR$(27) '''RESET parameters PLAY "l21o4c+ga-cd" wrm% = 11: whd% = 13: r% = 5: str = 1: ds% = 8: dalf = 1 scr% = 4: leng% = 10: dummax% = 10: wis% = 0: cyc% = 0: pad% = 0 CLS LINE (0, 16)-(640, 480), scr%, BF c% = wrm%: IF c% = 0 THEN c% = 15 COLOR c%: LOCATE 1, 1: PRINT "reset " tijd = TIMER: vlag% = 1 CASE "" '''wis info... IF TIMER - tijd > 2 AND vlag% = 1 THEN vlag% = 0: LOCATE 1, 1: PRINT "WORM " CASE CHR$(13) PLAY "l21o4c+ga-cd" END '''STOP END SELECT FOR dum1 = 1 TO cpu FOR dum% = 1 TO dummax%: NEXT dum% '''wachtlus NEXT dum1 GOTO Beweeg