Zeichensatz UTF-8+Z1013()+CTRL()-ohne Umlaute(äöüß) 10! SPIELPROGRAMM *** CLIMBER *** 20! 30! Version 2 Heimcomputer Z9001 40! 50! Ludwig,R.-C. 30.1.1985 60! 1020 BERLIN, Melchiorstr.8 Ptr. 70! ******************************* 80! 85 CLEAR 500:NR=0001 90 OUT 136,40:WINDOW: CLS: GOSUB 2580: GOSUB 2550: DIM NM$(16),K(16) 100 DATA 963,255,274,6,963,255,269,6,963,255,264,6,963,255,262,6 110 DATA 963,255,258,6,963,255,255,6,963,255,250,6,963,255,205,4 120 DATA 247,255,-255,208,255,88,255,47,255,-255,253,255,-255,-255 130 DATA 180,255,139,181,99,180,141 140 DATA 180,101,181,266,255,-255,186,182,-182 150 DATA 146,183,-183,66,255,-255,227,255,187,183,961,182,961,255 160 DATA 272,255,-255,-255,191,182,-182,151,183,-183 170 DATA 72,255,-255,-255,277,255,961,255,-255,961,255,-182 180 DATA 157,255,-183,-183,117,255,76,255,-255 190 DATA 830,170,811,167,470,169,451,168,963,161,790,8,963,161 200 DATA 771,8,962,160,829,18,962,160,469,18,962,61,705,11 210 DATA 547,58,-121,-98,-32,-116,-104,-103,-105,-114,-112,-111,-67,-32,-64 220 DATA 626,46,-67,-45 230 DATA-46,-82,-32,-44,-103,-105,-119,-100,-117,-76,665,110,-105,-108 240 DATA-114,-101,-66,-32,-48,-50,-48,-49,746,56,-46,-114,-116,-115 250 DATA-114,-111,-105,-104,-99,-108,-101,-77,0 255 DATA 0,3,22,36,99,1,2,3,4,5,6,7,8 260 DATA 912,33,-110,-101,-116,-108,-97,-104,-101,-98,-114,-111,-118 270 DATA-32,-101,-116,-104,-99,-101,-82,-32,-101,-108,-108,-65,0 280 CLS:OUT 136,44:WINDOW 0,19,0,39:READ K,T,A0,B0,U0:FOR F=1 TO 8:READ S(F):NEXT F 290 PRINT "*** SPIELPROGRAMM C L I M B E R ***" 300 PRINT "Sie muessen ihre Spielfigur im Wettlauf" 310 PRINT "mit der Zeit zum Ausgang der Spieletage" 320 PRINT "bringen und dort auf das Erscheinen der" 330 PRINT "naechsten Etage warten. Die Spielfigur" 340 PRINT "kann mit Hilfe der Kursor-Tasten oder" 350 PRINT "wenn vorhanden ueber den Spielhebel 1" 360 PRINT "bewegt werden. Beeilen Sie sich, denn" 370 PRINT "Sie haben nur wenig Zeit.":PRINT 380 PRINT "Verlassen Sie niemals die Linien und" 390 PRINT "Leitern ! Meiden Sie die Ungeheuer !" 400 PRINT "Sonst verliert die Spielfigur ihr Leben."; 410 PRINT "Zum Glueck hat sie drei Leben." 420 PRINT "Die Waechter am Ausgang koennen nur" 430 PRINT "durch das Einsammeln von Zauberfruchten" 440 PRINT "besiegt werden." 450 PRINT AT(19,30);"> ENTER <" 460 IY$=INKEY$:IF IY$=""THEN 460 470 CLS:PRINT TAB(12)"Spielfigur: " 480 PRINT TAB(5)"Ausgang der Etage: >-<" 490 PRINT TAB(14)"Waechter: " 500 PRINT TAB(8)"Zauberfruechte: $ 510 PRINT:PRINT TAB(13)"Ungeheuer: " 520 PRINT TAB(25)"":PRINT TAB(25)"":PRINT TAB(25)"":PRINT TAB(25)"" 530 PRINT TAB(25)"":PRINT TAB(25)"":PRINT TAB(25)"":PRINT TAB(25)"" 540 PRINT:PRINT " Gefaehrliche Schlange: " 550 PRINT AT(19,30);"> ENTER <" 560 IF INKEY$=""THEN 560 570 CLS:PRINT "In einigen Gefahrensituationen kann Ihre"; 580 PRINT "Spielfigur durch eine Tarnkappe auch" 590 PRINT "unsichtbar werden und ist dadurch erst" 600 PRINT "einmal gerettet. Durch Bewegung der" 610 PRINT "Figur wird Sie wieder sichtbar." 620 PRINT:PRINT:PRINT AT(19,30);"> ENTER <" 630 IF INKEY$=""THEN 630 640 CLS:PRINT "NAME DES SPIELERS ? (max.20 Buchstaben)" 650 PRINT:PRINT:INPUT NM$:NM$=MID$(NM$,1,20) 660 OUT 136,40:WINDOW 670 G$="----------------------------------------" 680 SP=S(1):J=8:GOSUB 2680 690 PRINT AT(6,1);MID$(G$,1,31):PRINT AT(10,8);MID$(G$,1,17) 700 PRINT AT(14,1);MID$(G$,1,31):PRINT AT(18,8);MID$(G$,1,17) 710 PRINT AT(22,1);MID$(G$,1,37):PRINT AT(3,15);">-<":PRINT AT(14,6);"$" 720 PRINT AT(14,26);"$":PRINT AT(18,15);"$$$" 730 FOR G=13 TO 23:PRINT AT(G,2);"-" 740 PRINT AT(G,30);"-":PRINT AT(G-13,16);"":NEXT G 750 PRINT AT(10,15);"$-$":PRINT AT(9,16);" ":PRINT AT(8,16);" " 760 PRINT AT(A,B);"":PRINT AT(18,2);"$":PRINT AT(18,30);"$" 770 FOR W=0 TO 16:PRINT AT(22-W,10);"O":PRINT AT(23-W,10);"-" 780 PRINT AT(6+W,22);"O":PRINT AT(5+W,22);"-" 790 GOSUB 2730:IF W<>7 THEN 810 800 U=U-1:PRINT AT(0,20);U,"" 810 NEXT W 820 IF A<4 THEN 920 830 U=U-1:PRINT AT(0,20);U,"" 840 FOR W=0 TO 16:IF INT(W/2)=W/2 THEN Z$="":ELSE Z$="" 850 PRINT AT(W+6,10);Z$:PRINT AT(5+W,10);"-" 860 PRINT AT(22-W,22);Z$:PRINT AT(23-W,22);"-" 870 GOSUB 2730:IF W=7 THEN U=U-1:PRINT AT(0,20);U,"" 880 NEXT W 890 IF A<4 THEN 920 900 U=U-1:PRINT AT(0,20);U,"":IF U<0 THEN GOTO 2440 910 GOTO 770 920 K=K+U 930 SP=S(2):GOSUB 2680 940 PRINT AT(6,1);MID$(G$,1,30):PRINT AT(14,1);MID$(G$,1,30) 950 PRINT AT(4,15);">-<" 960 PRINT AT(22,1);MID$(G$,1,37):PRINT AT(14,8);"$":PRINT AT(14,23);"$" 970 PRINT AT(6,16);"-":PRINT AT(7,16);"-":PRINT AT(14,8);"$" 980 PRINT AT(14,23);"$":PRINT AT(22,16);"$":PRINT AT(A,B);"" 990 FOR F=0 TO 10:PRINT AT(F,16);"-":NEXT F 1000 FOR W=0 TO 17:IF INT(W/2)=W/2 THEN Z$="":ELSE Z$="" 1010 PRINT AT(22-W,2);Z$:PRINT AT(23-W,2);"-":PRINT AT(6+W,29);Z$ 1020 PRINT AT(5+W,29);"-":GOSUB 2730 1030 IF W=7 THEN U=U-1:PRINT AT(0,20);U,"" 1040 NEXT W:U=U-1:PRINT AT(0,20);"":IF A<5 THEN 1120 1050 FOR W=0 TO 17:PRINT AT(6+W,2);"":PRINT AT(5+W,2);"-" 1060 PRINT AT(22-W,29);"":PRINT AT(23-W,29);"-":GOSUB 2730 1070 IF W=7 THEN U=U-1:PRINT AT(0,20);U,"" 1080 NEXT W:U=U-1:PRINT AT(0,20);U,"":IF U<1 THEN 2440 1090 IF A<5 THEN 1120 1100 IF U<1 THEN 2440 1110 GOTO 1000 1120 K=K+U 1130 SP=S(3):J=10:GOSUB 2680 1140 PRINT AT(4,15);">-<" 1150 PRINT AT(6,13);MID$(G$,1,7):PRINT AT(10,13);MID$(G$,1,7) 1160 PRINT AT(14,6);MID$(G$,1,21):PRINT AT(22,1);MID$(G$,1,37) 1170 PRINT AT(22,2);"$$$":PRINT AT(14,4);"$$":PRINT AT(14,27);"$$" 1180 FOR F=0 TO 10:PRINT AT(5+F,13);"-":PRINT AT(13+F,8);"-" 1190 PRINT AT(13+F,24);"-" 1200 PRINT AT(5+F,19);"-":PRINT AT(F,16);"":NEXT F:PRINT AT(A,B);"" 1210 PRINT AT(18,8);"$":PRINT AT(18,24);"$":PRINT AT(10,14);"$--$" 1220 PRINT AT(13,16);"$":PRINT AT(15,16);"$" 1230 FOR W=0 TO 17:PRINT AT(14,7+W);"-":PRINT AT(22,32-W);"-" 1240 PRINT AT(6,24-W);"-":GOSUB 2730 1250 NEXT W:U=U-1:PRINT AT(0,20);U,"" 1260 IF A<5 THEN 1320 1270 FOR W=0 TO 17:PRINT AT(14,24-W);"-" 1280 PRINT AT(22,14+W);"-":PRINT AT(6,7+W);"-" 1290 GOSUB 2730:NEXT W:U=U-1:PRINT AT(0,20);U,"":IF U<1 THEN 2440 1300 IF A<5 THEN 1320 1310 GOTO 1230 1320 K=K+U 1330 SP=S(4):J=5:GOSUB 2680 1340 PRINT AT(4,15);">-<":PRINT AT(9,10);MID$(G$,1,13) 1350 PRINT AT(12,13);MID$(G$,1,7):PRINT AT(15,10);MID$(G$,1,13) 1360 PRINT AT(18,10);MID$(G$,1,13):PRINT AT(15,10);"$":PRINT AT(15,22);"$" 1370 PRINT AT(22,1);MID$(G$,1,37):PRINT AT(9,10);"$$":PRINT AT(14,13);"-" 1380 PRINT AT(9,21);"$$":PRINT AT(13,13);"-":PRINT AT(13,19);"-" 1390 PRINT AT(18,10);"$":PRINT AT(18,22);"$":PRINT AT(14,19);"-" 1400 FOR F=1 TO 23:PRINT AT(F,16);"":NEXT F 1410 PRINT AT(A,B);"":PRINT AT(23,16);"-" 1420 FOR W=0 TO 14:PRINT AT(7+W,16);"":PRINT AT(6+W,16);"-" 1430 PRINT AT(22,22-W);"-":GOSUB 2730 1440 NEXT W:U=U-1:PRINT AT(0,21);U,"":IF U<0 THEN 2440 1450 IF A<5 THEN 1510 1460 FOR W=0 TO 14:PRINT AT(21-W,16);"":PRINT AT(22-W,16);"-" 1470 PRINT AT(22,8+W);"-":GOSUB 2730 1480 NEXT W:U=U-1:PRINT AT(0,21);U,"":IF U<1 THEN 2440 1490 IF A<5 THEN 1510 1500 GOTO 1420 1510 K=K+U 1520 J=5:SP=S(5):GOSUB 2680 1530 PRINT AT(2,15);">-<":PRINT AT(5,1);MID$(G$,1,18) 1540 PRINT AT(10,1);MID$(G$,1,26):PRINT AT(15,1);MID$(G$,1,26) 1550 PRINT AT(20,1);MID$(G$,1,26):PRINT AT(22,24);MID$(G$,24,37) 1560 FOR F=8 TO 22:PRINT AT(F,10);"-":PRINT AT(F,15);"-" 1570 PRINT AT(F,20);"-":PRINT AT(F,25);"-":NEXT F 1580 FOR F=4 TO 23:PRINT AT(F,1);"-":PRINT AT(INT(F/4-1),16);"":NEXT F 1590 PRINT AT(12,10);"$":PRINT AT(12,15);"$":PRINT AT(12,20);"$" 1600 PRINT AT(17,10);"$":PRINT AT(17,15);"$":PRINT AT(A,B);"" 1610 PRINT AT(17,20);"$" 1620 FOR W=0 TO 22:PRINT AT(10,2+W);"-":PRINT AT(15,25-W);"-" 1630 PRINT AT(20,2+W);"-":GOSUB 2730 1640 IF W=10 THEN U=U-1:PRINT AT(0,20);U,"" 1650 NEXT W:U=U-1:PRINT AT(0,20);U,"":IF U<1 THEN 2440 1660 IF A<3 THEN 1730 1670 FOR W=0 TO 22:PRINT AT(10,25-W);"-":PRINT AT(15,2+W);"-" 1680 PRINT AT(20,25-W);"-":GOSUB 2730 1690 IF W=10 THEN U=U-1:PRINT AT(0,20);U,"" 1700 NEXT W:U=U-1:PRINT AT(0,20);U,"":IF U<1 THEN 2440 1710 IF A<3 THEN 1730 1720 GOTO 1620 1730 K=K+U 1740 SP=S(6):J=10:GOSUB 2680 1750 PRINT AT(4,15);">-<":PRINT AT(7,13);MID$(G$,1,7) 1760 PRINT AT(9,13);MID$(G$,1,7):PRINT AT(11,13);MID$(G$,1,7) 1770 PRINT AT(22,1);MID$(G$,1,37):PRINT AT(14,17);"-":PRINT AT(18,17);"-" 1780 FOR F=13 TO 23:PRINT AT(F,2);"-":PRINT AT(F,10);"-" 1790 PRINT AT(F,22);"-":PRINT AT(F,30);"-":PRINT AT(23-F,16);"" 1800 PRINT AT(35-F,16);"-":NEXT F 1810 PRINT AT(12,2);"$":PRINT AT(12,10);"$":PRINT AT(16,2);"$" 1820 PRINT AT(16,10);"$":PRINT AT(16,22);"$":PRINT AT(16,30);"$" 1830 PRINT AT(12,22);"$":PRINT AT(12,30);"$":PRINT AT(20,2);"$" 1840 PRINT AT(20,10);"$":PRINT AT(20,16);"$" 1850 PRINT AT(20,22);"$":PRINT AT(20,30);"$":PRINT AT(A,B);"" 1860 FOR W=0 TO 6:PRINT AT(7,12+W);"-":PRINT AT(9,19-W);"-" 1870 PRINT AT(11,12+W);"-":PRINT AT(18,W/2);"-":PRINT AT(18,6+W);"---" 1880 PRINT AT(18,15+W);"---":PRINT AT(18,27+W/2);"--" 1890 PRINT AT(14,5-W/2);"-":PRINT AT(14,13-W);"---" 1900 PRINT AT(14,21-W);"---":PRINT AT(14,30-W/2);"--":GOSUB 2730 1910 NEXT W:U=U-1:PRINT AT(0,20);U,"":IF U<1 THEN 2440 1920 IF A<5 THEN 2020 1930 FOR W=0 TO 6:PRINT AT(7,19-W);"-":PRINT AT(9,12+W);"-" 1940 PRINT AT(11,19-W);"-":PRINT AT(18,5-W/2);"-" 1950 PRINT AT(18,13-W);"---" 1960 PRINT AT(18,21-W);"---":PRINT AT(18,30-W/2);"--" 1970 PRINT AT(14,W/2);"-":PRINT AT(14,6+W);"---" 1980 PRINT AT(14,15+W);"---":PRINT AT(14,27+W/2);"--":GOSUB 2730 1990 NEXT W:U=U-1:PRINT AT(0,20);U,"":IF U<1 THEN 2440 2000 IF A<5 THEN 2020 2010 GOTO 1860 2020 K=K+U 2030 SP=S(7):J=5:GOSUB 2680 2040 FOR F=2 TO 20:PRINT AT(F,0);MID$(G$,1,34):NEXT F 2050 FOR F=21 TO 23:PRINT AT(F,0);MID$(G$,1,40):NEXT F 2060 PRINT AT(1,15);">-<":PRINT AT(A,B);"" 2070 PRINT AT(RND(1)*20+3,RND(1)*34);"":GOSUB 2730 2080 PRINT AT(RND(1)*19+3,RND(1)*33);"":GOSUB 2730 2090 U=U-1:PRINT AT(0,20);U,"":IF U<1 THEN 2440 2100 IF A=1 AND B=16 THEN 2120 2110 GOTO 2070 2120 K=K+U 2130 SP=S(8):J=5:GOSUB 2680 2140 PRINT AT(2,0);G$,G$,G$:PRINT AT(21,0);G$,G$,G$ 2150 PRINT AT(1,15);">-<" 2160 PRINT AT(A,B);"" 2170 PRINT AT(RND(1)*19+3,RND(1)*30);"-----" 2180 PRINT AT(RND(1)*19+3,RND(1)*30);"----" 2190 GOSUB 2730 2200 PRINT AT(RND(1)*19+3,RND(1)*30);"-$$$-" 2210 PRINT AT(RND(1)*19+3,RND(1)*31);"--" 2220 PRINT AT(RND(1)*19+3,RND(1)*28);"-$--$-" 2230 PRINT AT(RND(1)*19+3,RND(1)*28);"$----$" 2240 GOSUB 2730:U=U-1/2:PRINT AT(0,20);U,"":IF U<1 THEN 2440 2250 IF A<>1 THEN 2160 2260 K=K+U+T*T*50 2270 CLS:PRINT AT(0,0);"*** WIR GRATULIEREN IHNEN ! ***":PRINT AT(1,0);" " 2280 PRINT AT(4,0);"Sie haben erfolgreich ihre Spielfigur" 2290 PRINT AT(6,0);"durch alle Etagen gefuehrt und dabei" 2300 PRINT AT(8,0);"insgesamt",K,"Punkte erhalten." 2310 PRINT AT(23,30);"> ENTER <":IY=JOYST$(1):IY$=INKEY$ 2320 IY$=INKEY$:IF IY$=""THEN 2320 2330 CLS:OUT 136,44:WINDOW 0,19,0,39:I=0 2340 PRINT "Ueberblick der besten Spielergebnisse :":PRINT:PRINT 2341 I=I+1 2342 IF I>14 THEN 2346 2343 IF K<K(I)THEN 2341 2344 IK=I:FOR I=15 TO IK STEP-1:K(I+1)=K(I):NM$(I+1)=NM$(I):NEXT I 2345 K(IK)=K:NM$(IK)=NM$ 2346 FOR I=1 TO 14:IF NM$(I)=""AND K(I)=0 THEN 2348 2347 PRINT STR$(I);".";TAB(4);NM$(I);TAB(25);K(I);"Punkte" 2348 NEXT I:PRINT:PRINT:PRINT AT(19,30);"> ENTER <" 2349 IF INKEY$=""THEN 2349:ELSE WINDOW:OUT 136,40:CLS 2350 CLS:PRINT "Wollen Sie das Spiel noch einmal":PRINT 2360 PRINT "versuchen ? ---> (JA/NEIN) ?" 2370 IY$=INKEY$:IF IY$=""THEN 2370 2380 IF IY$="J"OR IY$=CHR$(13)THEN RESTORE 255:GOTO 280:ELSE 2490 2400 CLS:PRINT AT(2,0);"Sie spielen leider noch zu schlecht !" 2410 PRINT AT(4,0);"Ihre Spielfigur hat ihr letztes Leben" 2420 PRINT AT(6,0);"verloren. ---> Sie muessen noch" 2430 PRINT AT(8,18);"ueben, ueben, ueben !":GOTO 2470 2440 CLS:PRINT AT(2,0);"Sie spielen zu langsam." 2450 PRINT AT(4,0);"* Ihre Spielzeit ist abgelaufen ! *" 2460 PRINT AT(0,0);" ":PRINT AT(1,0);" " 2470 PRINT AT(14,0);"Sie haben aber insgesamt",K,"Punkte" 2480 PRINT AT(16,0);"erhalten.":GOTO 2310 2490 WINDOW: CLS: RESTORE 190:GOSUB 2590: RESTORE 260: GOSUB 2590 2500 PRINT "ENDE DES PROGRAMMES" 2510 END 2520!*********************************** 2530! UNTERPROGAMME 2540!*********************************** 2550 PRINT AT(23,30);"> ENTER <" 2560 C$=INKEY$:IF C$="" THEN GOTO 2560 2570 CLS:IF C$=CHR$(7)THEN PRINT "NR=0001":PAUSE 50 2575 RETURN 2580! 2590 K=1: N=1 2600 READ C: IF C=0 THEN GOTO 2650: ELSE IF C<0 THEN M=-C: GOTO 2640 2610 READ M: IF C<961 THEN I=C: GOTO 2640 2620 IF C<>962 THEN K=40 2630 IF C>961 THEN READ I,N: I=I+K-1 2640 FOR J=1 TO N: I=I-K: C=I-5120: POKE C,M: BEEP: NEXT J: GOTO 2590 2650 RETURN 2660! 2670! 2680 CLS:A=A0:B=B0:U=U0:IY=JOYST$(1) 2690 PRINT AT(0,0);"PUNKTE:",K:PRINT AT(0,19);"",U,"" 2700 PRINT AT(0,28);"Sie haben":PRINT AT(1,28);"noch",T,"Leben":RETURN 2710! 2720! 2730 Q=PEEK(40*A+B-5120):GOSUB 2780:IY=JOYST$(1):IF IY<1 OR IY>8 THEN RETURN 2740 ON IY GOSUB 2820,2760,2750,2860,2750,2750,2750,2840 2750 RETURN 2760 IF B<39 THEN B=B+1 2770 Q=PEEK(40*A+B-5120):PRINT AT(A,B-1);"-" 2780 IF Q=36 THEN K=K+8:PRINT AT(0,6);K:PRINT AT(ABS(J),16);"-":J=J-1:RETURN 2790 IF Q=45 THEN RETURN 2800 IF Q=196 THEN RETURN 2810 GOTO 2880 2820 IF B>0 THEN B=B-1 2830 Q=PEEK(40*A+B-5120):PRINT AT(A,B);"-":GOTO 2780 2840 IF A>1 THEN A=A-1 2850 Q=PEEK(40*A+B-5120):PRINT AT(A,B);"":PRINT AT(A+1,B);"-":GOTO 2780 2860 IF A<23 THEN A=A+1 2870 Q=PEEK(40*A+B-5120):PRINT AT(A,B);"":PRINT AT(A-1,B);"-":GOTO 2780 2880 FOR F=0 TO 30:PRINT AT(A,B);"":BEEP:BEEP:PRINT AT(A,B);"":BEEP:BEEP 2890 NEXT F:T=T-1:IF T=0 THEN GOTO 2400 2900 PRINT AT(0,31);T 2910 ON SP GOTO 680,930,1130,1330,1520,1740,2030,2130