LIST 1 REM ------- LA CHENILLE --------- 3 POKE #75,32 4 POKE #2F1,#80:POKE #2F4,55:POKE #2F5,6:POKE #2F6,8 5 ENVELOPE 0 15 6 POKE #2F0,8 7 ENVELOPE 1 7,5;15,27;0,12;7,5;15,27;0,12;7,5;15,27;0 10 PRINT CHR$(12):PRINT :PRINT TAB(28);"WURM" 15 CLEAR 32767:DIM FOOD%(9,2) 17 FOR I%=0 TO 9:FOOD%(I%,1)=0:FOOD%(I%,2)=0:NEXT 20 PRINT :INPUT "BRAUCHST DU EINE ANLEITUNG(J/N)";A$ 30 IF A$="N" THEN 130 40 PRINT CHR$(12):PRINT :PRINT "WURM" 50 PRINT :PRINT :PRINT "MIT DEN CURSORTASTEN KANNST DU DEN WURM ZU DEN NAHRUNGS-" 60 PRINT "STUECKCHEN FUEHREN, DIE AUF DEM BILDSCHIRM ERSCHEINEN (DU" 70 PRINT "KANNST DEN WURM AUCH IN DIAGONALRICHTUNG SCHICKEN, DURCH" 80 PRINT "GLEICHZEITIGES DRUECKEN VON ZWEI CURSORTASTEN). JEDES" 90 PRINT "GEFRESSENE STUECK NAHRUNG GIBT 10 PUNKTE. ABER VORSICHT!!" 100 PRINT "DER WURM DARF WEDER MIT DEM RAND NOCH MIT SICH SELBST" 110 PRINT "ZUSAMMENSTOSSEN, UND ER WIRD IMMER LAENGER!!! NACH SECHS" 120 PRINT "ZUSAMMENSTOESSEN ENDET DAS SPIEL." 130 PRINT :INPUT "WIE SCHNELL SOLL DER WURM WACHSEN(LAENGE PRO NAHRUNGSSTUECK)";K% 140 IF K%<=0 OR K%>=15 THEN PRINT :PRINT "DAS GEHT DOCH NICHT! NIE BIOLOGIE STUDIERT?":GOTO 130 150 DIM H%(255,K%-1),V%(255,K%-1) 200 PRINT :PRINT :PRINT TAB(20);"ES GEHT LOS!" 210 WAIT TIME 100 220 PRINT CHR$(12) 230 COLORG 0 6 5 8:COLORT 11 1 0 0 240 MODE 2 242 A$="":FOR T%=1 TO 8:A$=A$+"SUPERWURM**":NEXT:POKE #2F2,0:CALLM #300,A$ 243 POKE #2F0,0:CALLM #300,A$ 245 POKE #2F0,5 260 REM CURSOR 15,3:PRINT "PUNKTE":CURSOR 35,3:PRINT "ZUSAMMENSTOESSE" 290 DRAW 0,0 0,52 8 292 DRAW 0,52 XMAX,52 8 293 DRAW XMAX,52 XMAX,0 8 294 DRAW 0,0 XMAX,0 8 295 POINTS%=0:COLL%=0:FTOT%=0 296 A$="READY ?":POKE #2F2,X%:POKE #2F3,0:CALLM #300,A$ 298 IF GETC=0 THEN 298 299 FILL 0,53 XMAX,YMAX 0 300 REM /* CURSOR 17,2:PRINT POINTS 310 REM /* CURSOR 43,2:PRINT COLL 320 A$="P:":POKE #2F2,1:CALLM #300,A$ 321 A$="C:":POKE #2F2,36:CALLM #300,A$:POKE #2F0,8 330 HEAD%=0:TAIL%=0:TOP%=0:DEATH%=0:HD%=0:TL%=0 340 H%(0,0)=XMAX-1:V%(0,0)=1:HVAL%=H%(0,0):VVAL%=1:DOT HVAL%,VVAL% 6 350 LENG%=256*K%-2:C%=3 360 HADD%=0:VADD%=1 370 F%=0:FVER%=3570*RND(0.0):GOTO 390 375 Q=RND(0.0):IF Q<1E-2*(TOP%-DEATH%) THEN 2100 377 DEATH%=(DEATH%+1) MOD 10 379 IF Q<=0.99 THEN 430 380 REM GENERATE FOOD 385 FVER%=357000*(1-Q) 390 FHOR%=FVER%/51+1 400 FVER%=(FVER% MOD 51)+1 410 IF SCRN(FHOR%,FVER%)=0 THEN 2000 420 IF F%=0 THEN FVER%=3570*RND(0.0):GOTO 390 430 REM MOVE WORM 440 CH%=GETC:IF 16<=CH% AND 19>=CH% THEN GOSUB 1500 450 HEAD%=(HEAD%+1) MOD 256:IF HEAD%=0 THEN HD%=(HD%+1) MOD K% 460 HVAL%=HVAL%+HADD%:H%(HEAD%,HD%)=HVAL% 470 VVAL%=VVAL%+VADD%:V%(HEAD%,HD%)=VVAL% 480 D%=SCRN(HVAL%,VVAL%) 490 IF D%=5 THEN C%=C%+K% 495 IF C%>0 THEN C%=C%-1:IF LENG%>0 THEN LENG%=LENG%-1:GOTO 510 500 DOT H%(TAIL%,TL%),V%(TAIL%,TL%) 0:TAIL%=(TAIL%+1) MOD 256:IF TAIL%=0 THEN TL%=(TL%+1) MOD K% 510 IF D%=5 THEN 700 520 IF SCRN(HVAL%,VVAL%)<>0 THEN 530 522 DOT HVAL%,VVAL% 6 524 GOTO 375 530 REM COLLISION 540 DOT HVAL%,VVAL% 6 543 FOR SO%=0 TO 2:SOUND SO% 0 15 0 FREQ(2000+RND(500)):NEXT 544 FOR SO%=0 TO 2:SOUND SO% 0 15 2 FREQ(100+SO%):NEXT 545 WAIT TIME 100 547 SOUND OFF 550 COLL%=COLL%+1:A$=STR$(COLL%):A$=MID$(A$,1,LEN(A$)-3):POKE #2F2,49:CALLM #300,A$ 553 DOT HVAL%,VVAL% D% 555 FILL 1,1 XMAX-1,51 0 560 IF COLL%<6 THEN 330 610 MODE 0:PRINT CHR$(12):PRINT :PRINT :PRINT 620 P=POINTS% 630 PRINT "DU HAST";POINTS%;" PUNKTE ERREICHT." 640 PRINT "IN DIESEM SPIEL WAREN";FTOT%;" PUNKTE MOEGLICH." 650 PRINT :PRINT "DER WURM HAT";100.0*P/FTOT%;"% DER ANGEBOTENEN" 660 PRINT "NAHRUNGSSTUECKE GEFRESSEN." 670 PRINT :INPUT "NOCH EIN SPIEL (J/N)";A$:PRINT 680 IF A$="J" THEN 130 690 PRINT :PRINT "ALSO DANN TSCHUESS!":END 700 POINTS%=POINTS%+10 710 A$=STR$(POINTS%):A$=MID$(A$,1,LEN(A$)-3):POKE #2F2,14:CALLM #300,A$ 720 F%=F%-1 730 NOISE 1 15:SOUND 0 1 7 0 FREQ(31) 735 IF TOP%=0 THEN 770 740 FOR I%=0 TO TOP%-1 750 IF FOOD%(I%,1)=HVAL% AND FOOD%(I%,2)=VVAL% THEN GOSUB 2200:GOTO 770 760 NEXT I% 770 WAIT TIME 30 780 SOUND OFF :NOISE OFF 1000 DOT HVAL%,VVAL% 6 1010 GOTO 420 1500 ON CH%-15 GOTO 1600,1700,1800,1900 1600 HADD%=0:VADD%=1 1610 CH%=GETC 1620 IF CH%=18 THEN HADD%=-1 1630 IF CH%=19 THEN HADD%=1 1640 RETURN 1700 HADD%=0:VADD%=-1 1710 GOTO 1610 1800 VADD%=0:HADD%=-1 1810 CH%=GETC 1820 IF CH%=17 THEN VADD%=-1 1830 IF CH%=16 THEN VADD%=1 1840 RETURN 1900 VADD%=0:HADD%=1 1910 GOTO 1810 2000 F%=F%+1:FTOT%=FTOT%+10 2010 DOT FHOR%,FVER% 5 2020 IF TOP%<=9 THEN FOOD%(TOP%,1)=FHOR%:FOOD%(TOP%,2)=FVER%:TOP%=TOP%+1 2030 GOTO 430 2100 FHOR%=FOOD%(DEATH%,1):FVER%=FOOD%(DEATH%,2) 2115 I%=DEATH%:GOSUB 2200 2120 DOT FHOR%,FVER% 0:F%=F%-1 2130 GOTO 420 2200 TOP%=TOP%-1 2205 IF I%=TOP% THEN RETURN 2210 FOR J%=I% TO TOP%-1 2220 FOOD%(J%,1)=FOOD%(J%+1,1) 2230 FOOD%(J%,2)=FOOD%(J%+1,2) 2240 NEXT J% 2250 RETURN *