5! S N A K E * * * * Z 1013 10 WINDOW 150 DIM R(4),HI(3),SP(8,5),U(4),UM(4) 160 DATA-1,-32,1,32 180 RESTORE 190 FOR I=1 TO 4:READ R(I):NEXT I 220 GOSUB 1410 230 CLS 240 PRINT AT(12,5);"Stufe Nr. 1, 2 or 3 ?" 250 PRINT AT(0,0);" ":Q$=INKEY$ 260 IF Q$<"1"OR Q$>"3"THEN 250 ELSE ST=ASC(Q$)-48 270 H=INT(ST)*10 280 E=-4367:ER=-1:C=-1:KR=0:SC=0:T=0:A=-4368:TH=-50 300 CLS 310 GOSUB 700 320 POKE A,195 330 POKE A+1,207 340 PRINT AT(30,0);"HP : ",HI(ST) 350 PRINT AT(30,10);"Punkte: ",SC 360 PRINT AT(30,22);"Stufe : ",ST 380 GOSUB 400 390 END 400!SPIELSCHLEIFE 430 C$=INKEY$ 440 IF C$=CHR$(11)THEN C=-32:GOTO 476 450 IF C$=CHR$(9)THEN C=1:GOTO 476 460 IF C$=CHR$(10)THEN C=32 :GOTO 476 470 IF C$=CHR$(8)THEN C=-1 :GOTO 476 471 LV=NOT LV:IF ST=1 OR(ST=2 AND LV)THEN 430 476 IF E<-5120 OR E>-4192 THEN 1010 480 IF(PEEK(A+C)=255)OR(PEEK(A+C)=207)THEN 1010 490 IF(PEEK(A+C)>48)AND(PEEK(A+C)<58)THEN T=Z+1:GOSUB 1300 500 POKE A,207:A=A+C:T=T-1 510 POKE A,195 515 IF PEEK(E)=32 OR PEEK(E)=255 THEN 530 520 POKE E,32 530 IF T>0 THEN 430 540 IF PEEK(E+ER)=207 THEN 580 550 FOR I=1 TO 4 560 IF PEEK(E+R(I))=207 THEN ER=R(I):GOTO 580 570 NEXT I 580 E=E+ER 590 IF T=TH THEN GOSUB 610 600 GOTO 430 610!ZAHL GENERIEREN 640 Z=INT(9*RND(1))+1 650 P=INT(880*RND(1))+(-5161) 660 IF PEEK(P)<>32 THEN 640 670 POKE P,Z+48:BEEP:BEEP 690 RETURN 700 INK 2:FOR I=0 TO 31 750 PRINT AT(0,I);CHR$(255) 760 PRINT AT(28,I);CHR$(255) 770 NEXT I 780 FOR I=0 TO 28 790 PRINT AT(I,0);CHR$(255) 800 PRINT AT(I,31);CHR$(255) 810 NEXT I 820 FOR I=4 TO 1 STEP-1 830 SP(2,I)=-4792+I*32 840 SP(4,I)=-4472-I*32 850 SP(6,I)=-4777+I*32 860 SP(8,I)=-4457-I*32 870 NEXT I 880 FOR I=4 TO 1 STEP-1 890 SP(1,I)=-4637+I*1 900 SP(3,I)=-4627-I*1 910 SP(5,I)=-4622+I*1 920 SP(7,I)=-4612-I*1 930 NEXT I 940 FOR I=1 TO 9 950 PRINT AT(10+I,8);CHR$(255) 960 PRINT AT(10+I,23);CHR$(255) 970 PRINT AT(15,3+I);CHR$(255) 980 PRINT AT(15,18+I);CHR$(255) 990 NEXT I 1000 RETURN 1010 U(1)=A+1:U(2)=A+32:U(3)=A-1:U(4)=A-32 1012 FOR I=1 TO 4:UM(I)=PEEK(U(I)):NEXT I 1014 Z=42 1016 FOR I=1 TO 1 1018 FOR K=1 TO 4 1020 POKE U(K),Z:NEXT K 1021 FOR K=1 TO 4 1022 POKE U(K),32:NEXT K:NEXT I 1023 FOR I=1 TO 4 1024 POKE U(I),UM(I):NEXT I 1040 T=SC+1 1050 POKE A,42:Z=208 1060 IF PEEK(A+ER)=207 THEN 1100 1070 ER=0:FOR I=1 TO 4 1080 IF PEEK(A+R(I))=207 THEN ER=R(I) 1090 NEXT I:IF ER=0 THEN T=0:GOTO 1150 1100 A=A+ER 1102 IF Z>223 THEN Z=208 1105 IF PEEK(A+ER)=255 THEN 1120 1110 POKE A,Z:BEEP 1120 T=T-1:Z=Z+1 1130 IF T>0 THEN 1060 1150! 1160 CLS:PRINT AT(0,0);" " 1170 PRINT AT(3,10);"Stufe ",ST 1180 PRINT AT(4,10);"========" 1190 PRINT AT(7,10);"Punkte",SC 1200 IF SC>HI(ST)THEN HI(ST)=SC 1210 PRINT AT(11,10);"Hoechst-Punkte :",HI(ST) 1215 IF SC=0 GOTO 1230 1220 PAUSE 10:IF SC=HI(ST)THEN PRINT AT(18,0);"Hoechstpunktzahl !!!" 1230 PRINT AT(22,0);"Bei Fortsetzung Taste druecken!" 1240 IF INKEY$=""THEN 1240 1250 GOTO 180 1300 SC=SC+Z 1310 PRINT AT(30,10);"Punkte: ",SC 1320 IF(KR<4)AND(SC>=H)THEN KR=KR+1:GOSUB 1370:H=H+H/KR 1330 RETURN 1370 FOR I=1 TO 8 1380 POKE SP(I,KR),32:POKE SP(I,KR)-1024,52 1390 NEXT I:GOSUB 2350:TH=-50+INT(HI(ST)/4) 1400 RETURN 1410!TITELBILD 1460 CLS:RESTORE 2220:PRINT AT(0,0);" " 1470 FOR I=1 TO 5 1480 READ Z 1490 FOR K=1 TO Z 1500 READ Y,X 1510 PRINT AT(X,Y);"" 1540 NEXT K 1550 NEXT I 1650 PRINT AT(24,3);"Fertig? Dann Taste druecken!" 1651 PRINT AT(25,27);CHR$(157) 1652 PRINT AT(27,27);"U" 1656 PRINT AT(28,25);"<-_->" 1658 PRINT AT(29,27);CHR$(154) 1660 GOSUB 2310:Z=128 1670 POKE-4286,Z+1 1680 POKE-4253,Z+2 1690 POKE-4222,Z+3 1700 POKE-4255,Z+4:Z=Z+4 1710 A=-4107:POKE A,195 1720 E=A:ER=-1 1730 FOR I=1 TO 5 1740 E=E+1:POKE E,207 1750 GOSUB 2310 1760 NEXT I 1770 GOSUB 2120 1780 FOR K=1 TO 4 1790 S=R(K) 1800 IF K=1 THEN X=2:Y=19:P=-4255:Z=Z+1 1810 IF K=2 THEN X=3:Y=18:P=-4286:Z=Z+1 1820 IF K=3 THEN X=4:Y=19:P=-4253:Z=Z+1 1830 IF K=4 THEN X=3:Y=20:P=-4222:Z=Z+1 1835 IF Z>255 THEN Z=128 1840 POKE P,Z 1850 IF ABS(S)=32 THEN RZ=9:GOTO 1870 1860 RZ=21 1870 FOR I=1 TO RZ 1880 GOSUB 2310 1900 POKE A,207:A=A+S 1910 POKE A,195:POKE E,32 1920 IF PEEK(E+ER)=103 THEN 1960 1930 FOR J=1 TO 4 1940 IF PEEK(E+R(J))=207 THEN ER=R(J):GOTO 1960 1950 NEXT J 1960 E=E+ER 1970 GOSUB 2030 1980 NEXT I 1990 POKE P,Z 2000 NEXT K 2010 GOTO 1780 2030 IF B=-4760 THEN GOSUB 2120 2040 IF(PEEK(B-1)>52)AND(PEEK(B-1)<57)THEN T=N+1 2050 POKE B,207:B=B-1:T=T-1 2060 POKE B,195 2070 POKE F,32 2080 IF T>0 THEN 2100 2090 F=F-1 2100 RETURN 2120 FOR J=0 TO 18 2130 POKE-4760+J,32 2140 NEXT J 2150 B=-4602:F=B+1 2160 POKE B,195:POKE F,207 2170 N=INT(4*RND(1))+5 2180 L=INT(11*RND(1))+(-4618) 2190 POKE L,48+N:BEEP:POKE L-60,48+N 2200 RETURN 2210! 2220 DATA 12,3,0,2,0,1,0,0,1,0,2,1,3,2,3,3,4,3,5,2,6,1,6,0,6 2230 DATA 19,6,6,6,5,6,4,6,3,6,2,6,1,6,0,7,1,7,2,8,3 2235 DATA 9,4,9,5,10,6,10,5,10,4,10,3,10,2,10,1,10,0 2240 DATA 16,13,6,13,5,14,4,14,3,15,2,15,1,16,0,17,1,17 2245 DATA 2,18,3,18,4,19,5,19,6,15,3,16,3,17,3 2250 DATA 14,22,6,22,5,22,4,22,3,22,2,22,1,22,0,26 2255 DATA 0,25,1,24,2,23,3,24,4,25,5,26,6,12,31,6,30,6,29,6 2260 DATA 29,5,29,4,29,3,29,2,29,1,29,0,30,0,31,0,30,3 2300 DATA-1,-32,1,40 2310 B$="" 2320 B$=INKEY$ 2330 IF B$=""THEN RETURN 2340 GOTO 230 2350 Y$=" GRATULATION " 2360 X$="" 2370 FOR K=1 TO 20 2380 PRINT INK 4;AT(0,10);Y$:PRINT INK 4;AT(28,10);Y$:BEEP:PAUSE 1 2390 PRINT INK 2;AT(28,10);X$:PRINT INK 2;AT(0,10);X$:PAUSE 1 2400 NEXT K:RETURN