1 REM +++++++++++++++++++++++++++++++++ 2 REM ! Program .... MONSTER 3 REM ! Utg}va 1983 4 REM ! av (c) Krister Hessling 7 REM ! Minne 16 Kbytes 9 REM +++++++++++++++++++++++++++++++++ 10 REM 11 REM Screening av 12 REM Allan Varcoe & G|ran Olsson 13 REM 14 IF PEEK(590)<>40 THEN ; INP(3) 70 REM ** START & UPPRITNINGS RUTIN ** 80 P1=0 90 H1=0 100 ; CHR$(12) 110 RANDOMIZE 120 DEFFNA%(I%)=INT(19%*RND)+1% 130 DEFFNB%(O%)=INT(21%*RND) 140 ; CHR$(12) 150 FOR T=1 TO 500 : NEXT T 160 ; CUR(0,10);"********************" 170 ; CUR(1,10);"* THE MONSTER ROOM *" 180 ; CUR(2,10);"********************" 190 A%=20 200 T%=105 210 GOSUB 1130 220 ; CUR(5,13);"\ MONSTRET" 230 A%=16 240 T%=115 250 GOSUB 1130 260 ; CUR(7,13);"o SPELAREN" 270 A%=23 280 T%=96 290 GOSUB 1130 300 ; CUR(9,13);"X KATAPULLT BOMB" 310 A%=55 320 T%=57 330 GOSUB 1130 340 ; CUR(11,13);"* DEN MAGISKA SKATTEN" 350 A%=34 360 T%=153 370 GOSUB 1130 380 ; CUR(15,7);"VILL DU HA INSTRUKTIONER ? (J/N)" 390 FOR T=1 TO 1000 400 K=INP(56) 410 IF K=202 OR K=234 THEN 450 420 IF K=206 OR K=238 THEN 890 430 NEXT T 440 GOTO 110 450 ; CHR$(12) 460 FOR T=1 TO 300 : NEXT T 470 ; CUR(0,12);"INSTRUKTIONER" 480 FOR ]=1 TO 3 490 A%=30 500 T%=50 510 GOSUB 1130 520 NEXT ] 530 A%=38 540 T%=100 550 GOSUB 1130 560 ; 570 ; "Du befinner dig i ett rum som bebos av ett monster. Rummets v{ggar {r str|mf|rande "; 575 ; "och golvet {r fullt" 580 ; "av katapullt-bomber. Du d|r om du g}r imot v{ggen och" 590 ; "kastas iv{g om du g}r p} en bomb." 600 ; "Om du lyckas att ta dig ut ur rummet utan att bli upp {ten, s} f}r du ett nytt rum." 610 ; "I rummet finns ocks} en magisk skatt. Om du tar den s} kan du d|da monstret." 620 ; "Du f}r 1000 po{ng f|r varje rum och monster." 630 ; : ; "TRYCK P] RETURN N[R DU L[ST KLART" 640 IF INP(56)=141 THEN 660 650 GOTO 640 660 ; CHR$(12) 670 OUT 6,13 680 FOR ]=1 TO 100 : NEXT ] 690 OUT 6,0 700 ; CUR(2,0);"DU STYR MED DESSA TECKEN: =========================" 710 ; 720 ; "U : UPP" 730 ; "N : NER" 740 ; "H : H\GER" 750 ; "V : V[NSTER" 760 ; "UH : UPP-H\GER" 770 ; "UV : UPP-V[NSTER" 780 ; "NH : NER-H\GHER" 790 ; "NV : NER-V[NSTER" 800 ; 810 ; "ANV[ND BARA STORA BOKST[VER OCH TRYCK P] RETURN EFTER VARE INMATNING!!" 820 FOR T=1 TO 500 : NEXT T 830 ; 840 ; "TRYCK P] RETURN F\R START" 850 ; 860 ; " L Y C K A T I L L !" 870 IF INP(56)=141 THEN 890 880 GOTO 870 890 REM 900 DATA 50,50,40,50,30,50,20,50,20,50,30,50,40,50,50,50 910 RESTORE 900 920 FOR M=1 TO 8 930 READ A%,T% 940 GOSUB 1130 950 NEXT M 960 ; CHR$(12) 970 FOR V%=0% TO 20% 980 ; CUR(0%,V%);"";CUR(V%,0%);"";CUR(20%,V%);"";CUR(V%,20%);"" 990 NEXT V% 1000 ; CUR(0,22);"U : UPP" 1010 ; CUR(1,22);"N : NER" 1020 ; CUR(2,22);"H : H\GER" 1030 ; CUR(3,22);"V : V[NSTER" 1040 ; CUR(4,22);"UH : UPP-H\GER" 1050 ; CUR(5,22);"UV : UPP-V[NSTER" 1060 ; CUR(6,22);"NH : NER-H\GER" 1070 ; CUR(7,22);"NV : NER-V[NSTER" 1080 ; CUR(9,22);"\ : MONSTRET" 1090 ; CUR(10,22);"o : SPELAREN" 1100 ; CUR(11,22);"X : BOMB" 1110 ; CUR(12,22);"* : MAGISK SKATT" 1120 GOTO 1180 1130 REM ** MUSIK RUTIN ** 1140 FOR Z%=1% TO T% 1150 OUT 6%,121% : FOR B%=0% TO A% : NEXT B% 1160 OUT 6%,0% : NEXT Z% 1170 RETURN 1180 REM ** SPEL RUTIN** 1190 DIM X%(20%) 1200 G$="o" 1210 DIM Y%(20%) 1220 FOR F%=1% TO 20% 1230 X%(F%)=FNA%(I%) 1240 Y%(F%)=FNA%(I%) 1250 ; CUR(X%(F%),Y%(F%));"X" 1260 NEXT F% 1270 ; CUR(0,10);" " 1280 M1%=FNA%(I%) 1290 M2%=FNA%(I%) 1300 FOR F%=1% TO 20% 1310 IF X%(F%)=M1% AND Y%(F%)=M2% THEN 1280 1320 NEXT F% 1330 ; CUR(M1%,M2%);"\" 1340 G1%=FNA%(I%) 1350 G2%=FNA%(I%) 1360 IF M1%=G1% AND M2%=G2% THEN 1340 1370 FOR F%=1% TO 20% 1380 IF X%(F%)=G1% AND Y%(F%)=G2% THEN 1340 1390 NEXT F% 1400 ; CUR(G1%,G2%);G$ 1410 S1%=FNA%(I%) 1420 S2%=FNA%(I%) 1430 IF S1%=G1% AND S2%=G2% OR S1%=M1% AND S2%=M2% THEN 1410 1440 FOR F%=1% TO 20% 1450 IF X%(F%)=S1% AND Y%(F%)=S2% THEN 1410 1460 NEXT F% 1470 ; CUR(S1%,S2%);"*" 1480 M3%=M1% 1490 M4%=M2% 1500 G3%=G1% 1510 G4%=G2% 1520 ; CUR(15,22);"HI-SCORE:";H1 1530 ; CUR(17,22);"PO[NG:";P1;" " 1540 REM ** FLYTTNINGS RUTIN ** 1550 ; CUR(22,0);CHR$(7);" ";CUR(22,0);"MOVE "; : INPUT M$ 1560 IF M$="U" THEN 1650 1570 IF M$="N" THEN 1670 1580 IF M$="H" THEN 1690 1590 IF M$="V" THEN 1710 1600 IF M$="UH" THEN 1730 1610 IF M$="UV" THEN 1760 1620 IF M$="NH" THEN 1790 1630 IF M$="NV" THEN 1820 1640 GOTO 1550 1650 G1%=G1%-1% 1660 GOTO 1840 1670 G1%=G1%+1% 1680 GOTO 1840 1690 G2%=G2%+1% 1700 GOTO 1840 1710 G2%=G2%-1% 1720 GOTO 1840 1730 G1%=G1%-1% 1740 G2%=G2%+1% 1750 GOTO 1840 1760 G1%=G1%-1% 1770 G2%=G2%-1% 1780 GOTO 1840 1790 G1%=G1%+1% 1800 G2%=G2%+1% 1810 GOTO 1840 1820 G1%=G1%+1% 1830 G2%=G2%-1% 1840 ; CUR(G3%,G4%);" ";CUR(G1%,G2%);G$ 1850 OUT 6%,7% : FOR T%=0% TO 400% : NEXT T% : OUT 6%,0% 1860 FOR F%=1% TO 20% 1870 IF X%(F%)=G1% AND Y%(F%)=G2% THEN 2160 1880 NEXT F% 1890 IF G1%=0% AND G2%=10% THEN 2420 1900 IF G1%<=0% OR G1%>=20 THEN 2320 1910 IF G2%<=0% OR G2%>=20 THEN 2320 1920 IF G1%=S1% AND G2%=S2% THEN G$="O" 1930 IF G$="O" AND G1%=M1% AND G2%=M2% THEN 2420 1940 IF G1%=M1% AND G2%=M2% THEN 2530 1950 REM ** MONSTER RUTIN ** 1960 IF G$="O" THEN 2020 1970 IF G1%M1% THEN M1%=M1%+1% 1990 IF G2%M2% THEN M2%=M2%+1% 2010 GOTO 2060 2020 IF G1%M1% THEN M1%=M1%-1% 2040 IF G2%M2% THEN M2%=M2%+1% 2060 ; CUR(M3%,M4%);" ";CUR(M1%,M2%);"\" 2070 OUT 6%,9% : FOR T%=0% TO 40% : NEXT T% : OUT 6%,0% 2080 IF G$="O" AND M1%=G1% AND M2%=G2% THEN 2420 2090 IF M1%=G1% AND M2%=G2% THEN 2530 2100 FOR F%=1% TO 20% 2110 IF X%(F%)=M1% AND Y%(F%)=M2% THEN 2630 2120 NEXT F% 2130 IF M1%<=0% OR M1%>=20% THEN 2780 2140 IF M2%<=0% OR M2%>=20% THEN 2780 2150 GOTO 1480 2160 REM ** BOMB RUTIN (SPELARE) ** 2170 OUT 6%,55% 2180 FOR E%=1% TO 30% 2190 OUT 6%,55% 2200 ; CUR(G1%,G2%);"" 2210 FOR T%=1% TO 200% : NEXT T% 2220 ; CUR(G1%,G2%);G$ 2230 FOR T%=1% TO 200% : NEXT T% 2240 OUT 6%,0% 2250 NEXT E% 2260 ; CUR(G1%,G2%);"X" 2270 G1%=FNB%(O%) 2280 G2%=FNB%(O%) 2290 G3%=G1% 2300 G4%=G2% 2310 GOTO 1840 2320 REM ** V[GG RUTIN (SPELARE) ** 2330 FOR T%=1% TO 40% 2340 OUT 6%,55% 2350 FOR F%=0% TO 300% : NEXT F% 2360 ; CUR(G1%,G2%);"" 2370 OUT 6%,0% 2380 FOR F%=0% TO 200% : NEXT F% 2390 ; CUR(G1%,G2%);G$ 2400 NEXT T% 2410 GOTO 2880 2420 REM ** UTG]NGS RUTIN ** 2430 DATA 20,50 ,30,50 ,30,50 ,25,50 ,30,50 ,25,50 ,20,50,0,0 2440 RESTORE 2430 2450 FOR M%=1% TO 7% 2460 READ A%,T% 2470 GOSUB 1130 2480 NEXT M% 2490 FOR F=1 TO 500 : NEXT F 2500 P1=P1+1000 2510 IF P1>H1 THEN H1=P1 2520 GOTO 890 2530 REM ** UPP[TNINGS RUTIN ** 2540 ; CUR(M1%,M2%);"\" 2550 DATA 50,50,40,50,35,90,50,40,40,40,30,40,35,90,50,50,40,50,35,90,40,50,50,50,0,0 2560 RESTORE 2550 2570 FOR M%=1% TO 12% 2580 READ A%,T% 2590 GOSUB 1130 2600 NEXT M% 2610 FOR F=1 TO 1000 : NEXT F 2620 GOTO 2880 2630 REM ** BOMB RUTIN (MONSTER) ** 2640 FOR T%=1% TO 20% 2650 OUT 6%,13% 2660 ; CUR(M1%,M2%);"" 2670 FOR F%=1% TO 300% : NEXT F% 2680 ; CUR(M1%,M2%);"\" 2690 OUT 6%,0% 2700 FOR F%=1% TO 300% : NEXT F% 2710 NEXT T% 2720 ; CUR(M1%,M2%);"X" 2730 M1%=FNB%(O%) 2740 M2%=FNB%(O%) 2750 M3%=M1% 2760 M4%=M2% 2770 GOTO 2060 2780 REM ** V[GG RUTIN (MONSTER) ** 2790 FOR T%=1% TO 10% 2800 OUT 6%,55% 2810 ; CUR(M1%,M2%);"" 2820 FOR F%=1% TO 200% : NEXT F% 2830 ; CUR(M1%,M2%);"\" 2840 OUT 6%,0% 2850 FOR F%=1% TO 300% : NEXT F% 2860 NEXT T% 2870 GOTO 2880 2880 DATA 50,80,40,80,30,50,50,150 2890 RESTORE 2880 2900 FOR M%=1% TO 4% 2910 READ A%,T% 2920 GOSUB 1130 2930 NEXT M% 2940 ; CUR(21,0);"G A M E O V E R ! !" 2950 ; "ETT NYTT SPEL ? (J/N)" 2960 IF P1>H1 THEN H1=P1 2970 P1=0 2980 FOR F=1 TO 1000 2990 K=INP(56) 3000 IF K=202 OR K=234 THEN 960 3010 IF K=206 OR K=238 THEN 3040 3020 NEXT F 3030 GOTO 140 3040 END