8-Bit Software Online Conversion

Nightmare Park - Listing

10*TV255 20*FX4,1 30MODE7:PROCSETVDU :GOES=0 40DIM T%(13,5),P(13) 50FORI=1TO13:P(I)=I:NEXT 60FOR I=1 TO 13 70READ T%(I,1),T%(I,2),T%(I,3),T%(I,4 ):NEXT 80DATA 5,17,5,18,9,12,9,13,15,12,15,1 1,15,8,15,9,17,10,16,10,17,6,16,6,23,17, 23,16,23,11,24,11,23,5,23,6,33,17,33,16, 33,11,32,11,33,5,33,6,36,10,37,10 90FORI=1TO13 100Z=RND(13) 110IF P(Z)<>-1 THEN T%(I,5)=P(Z):P(Z)= -1 ELSE GOTO 100 120NEXT 130VDU23,1,0;0;0;0; 140PRINTTAB(9,10);CHR$141; 150PRINT" Nightmare Park "+CHR$156 160PRINTTAB(9,11);CHR$141; 170PRINT" Nightmare Park "+CHR$156 180PRINTTAB(10,20);" By John Henson" 190Z=INKEY(300) 200*TV3,1 210MODE6:PROCSETSCREEN:PROCVARS 220PROCMAP:VDU31,MX,MY,224 230REPEAT:REPEAT:Z=GET 240UNTIL Z<140 AND Z>135:XI=0:YI=0 250VDU31,MX,MY,224:GOES=GOES+1 260IFZ=136 XI=-1 270IFZ=137 XI=1 280IFZ=138 YI=1 290IFZ=139 YI=-1 300NP=FNPEEK(MX+XI,MY+YI) 310IFNP=226 OR NP=225 THEN CLS:PRINT"O h Dear you should have kept off the g rass because the Park-keeper has just m owed you down!!!"':PROCDEAD 320IFNP=32 THEN GOTO 390 330VDU31,MX,MY,32:I=1:J=FALSE 340MX=MX+XI:MY=MY+YI 350REPEAT 360IF MX=T%(I,1) AND MY=T%(I,2) THEN M X=T%(T%(I,5),3):MY=T%(T%(I,5),4):J=TRUE 370I=I+1:UNTIL J=TRUE 380VDU31,MX,MY,224:GOTO410 390VDU31,MX,MY,32,31,MX+XI,MY+YI,224 400MX=MX+XI:MY=MY+YI 410TERROR=RND(25)-1 420IFTERROR=LAST GOTO410ELSELAST=TERRO R 430IF TERROR=0 PROCGAMBLER 440IF TERROR=1 PROCGORRILA 450IF TERROR=2 PROCMAD 460IF TERROR=3 PROCHAIL 470IF TERROR=4 PROCFOREST 480IF TERROR=5 PROCLION 490IF TERROR=6 PROCCRUSHER 500IF TERROR=7 PROCEDNA 510VDU31,MX,MY,224 520UNTIL MX=38 AND MY=10:*TV255 530MODE7:END 540DEFPROCSETSCREEN 550VDU23,0,9,7,0,0,0,0,0,0 560VDU23,0,4,38,0;0;0;19,7,3,0,0,0 570VDU23,1,0;0;0;0; 580ENDPROC 590DEFPROCVARS:LAST=-1:MX=1:MY=10:ENDP ROC 600DEFPROCMAP 610PRINTSTRING$(40,CHR$(225)); 620FOR Y=1 TO 22 630PRINT" ";STRING$(38,CHR$226);" "; 640NEXT Y:D$=" "+CHR$10+CHR$8 650PRINTSTRING$(40,CHR$(225)); 660PRINTTAB(9,2)SPC(10)TAB(21,2)SPC(8) TAB(9,15)SPC(5)TAB(11,5)SPC(1)TAB(11,6)S PC(6)TAB(23,6)SPC(2)TAB(32,6)SPC(2)TAB(2 4,7)SPC(9)TAB(25,8)SPC(2)TAB(30,8)SPC(2) TAB(24,9)SPC(2) 670PRINTTAB(31,9)SPC(2)TAB(18,3)SPC(1) TAB(1,10)SPC(16)TAB(37,10)SPC(2)TAB(19,1 1)SPC(3)TAB(10,12)SPC(4)TAB(24,13)SPC(2) TAB(31,13)SPC(2)TAB(25,14)SPC(2)TAB(30,1 4)SPC(2)TAB(11,4)SPC(8) 680PRINTTAB(3,15)SPC(5)TAB(24,15)SPC(9 )TAB(23,16)SPC(2)TAB(32,16)SPC(2)TAB(3,1 8)SPC(5)TAB(9,18)SPC(3)TAB(3,20)SPC(2)TA B(4,21)SPC(8)TAB(13,21)SPC(3)TAB(21,21)S PC(8) 690PRINTTAB(3,16)STRING$(4,D$)TAB(4,11 )STRING$(4,D$)TAB(24,9)STRING$(5,D$)TAB( 9,3)STRING$(7,D$)TAB(9,13)STRING$(5,D$)T AB(13,13)STRING$(8,D$)TAB(11,19)STRING$( 2,D$)TAB(15,9)STRING$(3,D$) 700PRINTTAB(15,19)STRING$(2,D$)TAB(16, 17)STRING$(3,D$)TAB(17,15)STRING$(3,D$)T AB(18,13)STRING$(3,D$)TAB(28,3)STRING$(4 ,D$)TAB(28,16)STRING$(5,D$)TAB(32,10)STR ING$(3,D$) 710PRINTTAB(7,15)STRING$(4,D$)TAB(19,1 2)STRING$(2,D$)TAB(21,2)STRING$(20,D$) 720FORI=1TO13:VDU31,T%(I,1),T%(I,2),22 9:NEXT 730PRINTTAB(2,2);"Keep";TAB(2,4);"Off" ;TAB(2,6);"The";TAB(2,8);"Grass" 740PRINTTAB(30,19)"NiteMare"TAB(32,21) "Park" 750COLOUR0:COLOUR129 760PRINTTAB(13,0)"By John Henson" 770COLOUR7:COLOUR128 780ENDPROC 790DEFPROCSETVDU:FOR L%=128 TO 224 STE P 96 800VDU23,L%,0,8,28,127,62,28,54,34 810VDU23,L%+1,255,255,255,255,255,255, 255,255 820VDU23,L%+2,85,170,85,170,85,170,85, 170 830VDU23,L%+3,60,126,126,126,24,24,24, 0 840VDU23,L%+4,60,126,255,126,102,102,1 02,102 850VDU23,L%+5,0,126,66,90,90,66,126,0: NEXT 860ENDPROC 870DEFFNPEEK(X%,Y%) 880LOCAL A%,C% :A%=135:VDU31,X%,Y% 890C%=((USR(&FFF4) AND &FFFF)DIV&100) 900IF C%<128 THEN =C% 910=(C% MOD 32)+224 920DEFPROCGORRILA 930RESTORE 950 940CLS:N=RND(11)-1:FORI=1TON:READN$:NE XT 950DATAWINSTON,HENRY,PERCIVAL,SIDNEY,A LBERT,FREDRICK,RONALD,STANLEY,EDWARD,LIO NEL 960PRINT"AARGH!, It's the EGOTISTICAL GORRILLA"' 970PRINT"Tell him his name or be disma ntled!!" 980PRINT'"It is revealed in a flash of light." 990I=INKEY(500) 1000PRINTTAB(15,12);N$ 1010 FOR I=1 TO 120*RND(2)+1:NEXT 1020PRINTTAB(15,12);" " 1030INPUT "What is his name ",n$ 1040IF N$<>n$ PRINT'"Grrr! Snarl! You g ot it ... ";:I=INKEY(200):PRINT"Wrong!": PROCDEAD 1050PRINT'"Grrr! Snarl! You got it ... ";:I=INKEY(200):PRINT"Right!" 1060 I=INKEY(200):CLS:PROCMAP 1070ENDPROC 1080DEFPROCMAD 1090CLS 1100PRINT"AARGH!, It's the MAD MATHEMAT ICIAN" 1110PRINT'"He says you must answer his sum"' 1120PRINT"correctly in 15 seconds or el se !!!!!" 1130S$=STR$(RND(10))+"+"+STR$(RND(10))+ "+"+STR$(RND(10))+"+"+STR$(RND(10))+"+"+ STR$(RND(10))+"+"+STR$(RND(10)) 1140I=INKEY(300):PRINT''SPC(13);S$ 1150T=TIME:PRINT:INPUT"Answer ",A 1160PRINT 1170IF A<>EVAL(S$) THEN PRINT"Wrong dum my it was ";EVAL(S$)' ELSE PRINT"Right s marty pants it was indeed ";EVAL(S$)' 1180IF TIME>T+1500 ANDA=EVAL(S$) THEN P RINT"But you were too slow !!":I=INKEY(2 00):PROCDEAD ELSE IF TIME>T+1500 THEN PR INT"But you were to slow anyway !!":I=IN KEY(200):PROCDEAD 1190IFA<>EVAL(S$) THEN I=INKEY(200):PRO CDEAD 1200I=INKEY(300) 1210CLS:PROCMAP:ENDPROC 1220DEFPROCGAMBLER :CLS 1230PRINT"AARGH!, It's the GRUESOME GAM BLER" 1240PRINT'"He says you must guess if yo ur dice will"'"be higher or lower than h is" 1250D$=STR$(RND(6)):D1$=STR$(RND(6)) 1260PRINT'"He rolls a ";D$ 1270 PRINT'"You guess higher or lower ( H/L) ";:REPEAT:G$=GET$:UNTILG$="H" OR G$ ="L":PRINTG$ 1280 PRINT'"You roll a ";:I=INKEY(200): PRINTD1$' 1290IF G$="H" AND D$<D1$ THEN 1320 1300IF G$="L" AND D$>D1$ THEN 1320 1310PRINT"Wrong! ha ha ha !!":PROCDEAD 1320PRINT"Grrr! Snarl! Right!":I=INKEY( 400) 1330CLS:PROCMAP:ENDPROC 1340DEFPROCHAIL :CLS 1350PRINT"Stand still and prepare yours elf for a"''"HAIL OF BARBES." 1360FOR I=1 TO 7000:NEXT:CLS 1370PRINTTAB(19,19);CHR$(224) 1380C=0:REPEAT:X=RND(15)+24:Y=0 1390REPEAT VDU31,X,Y,ASC("X") 1400FOR I=1 TO 100:NEXT 1410X=X-1:Y=Y+1:UNTIL Y=20 OR X=0 1420IF FNPEEK(19,19)<>224 GOTO 1480 1430X=RND(16)-1:Y=0 1440REPEAT VDU31,X,Y,ASC("X") 1450FOR I=1 TO 100:NEXT 1460X=X+1:Y=Y+1:UNTIL Y=20 OR X=39 1470C=C+1:UNTIL C=5 OR FNPEEK(19,19)<>2 24 1480S=FNPEEK(19,19) 1490IFS<>224 THEN CLS:PRINT"Too bad, yo u were hit by a BARB!":PROCDEAD 1500I=INKEY(400):CLS 1510PRINT'"You were lucky there." 1520 I=INKEY(200):CLS:PROCMAP:ENDPROC 1530DEFPROCFOREST:CLS 1540PRINT"You have 30 seconds to get ho me( )"''"throught the forest, if you run into any"'"trees you will break your ne ck."''"Use arrow keys to move." 1550I=INKEY(600):CLS:N=32 1560PRINTSTRING$(40," "); 1570FORI=1TO22:PRINT" ";SPC(38);" ";:NE XT 1580PRINTSTRING$(40," "); 1590FORI=1TO250:VDU31,RND(39) 1600VDURND(22),227:NEXT 1610VDU31,19,12,228 1620REPEAT:X=RND(37)+1:Y=RND(20)+1:UNTI L FNPEEK(X,Y)=32 1630T=TIME:REPEAT 1640IT=TIME:REPEAT:D=INKEY(0) 1650VDU31,0,24:PRINT"TIME:";(INT(TIME-T )/100);" "; 1660VDU31,X,Y,32 1670IF D=136 N=FNPEEK(X-1,Y):X=X-1 1680IF D=137 N=FNPEEK(X+1,Y):X=X+1 1690IF D=138 N=FNPEEK(X,Y+1):Y=Y+1 1700IF D=139 N=FNPEEK(X,Y-1):Y=Y-1 1710VDU31,X,Y,224 1720UNTIL TIME>IT+300 OR N<>32 1730IF N=227 OR N=228 THEN GOTO 1770 1740FORK%=1TO25 1750REPEAT:A%=RND(37)+1:B%=RND(20+1):UN TIL FNPEEK(A%,B%)=32 1760VDU31,A%,B%,227:NEXT 1770UNTIL N<>32 OR TIME>T+3000 1780IF N=227 THEN CLS:PRINT"Oops! clums y! you ran into a tree and"''"broke your neck.":PROCDEAD 1790ET=TIME:IF ET>=T+3000 THEN CLS:PRIN T"Ooops!, too long you have died!":PROCD EAD 1800CLS:PRINT"Grrr! Snarl! Made it!!" 1810PRINT'"You are free to go now" 1820I=INKEY(200):CLS:PROCMAP:ENDPROC 1830DEFPROCDEAD 1840PRINT'"Another victim to chalk up o n the"''"Park-keepers scoreboard."''"You survived for ";GOES;" move"; 1850IFGOES>1 PRINT"s."' ELSE PRINT"."' 1860PRINT'"Would you like to try again? (Y/N) ";:REPEAT:A$=GET$:UNTIL A$="Y" OR A$="N":PRINTA$ 1870IF A$="Y" RUN ELSE OSCLI("TV255"):C ALL !-4 1880DEFPROCLION:CLS 1890PRINT"Aaargh! It's the POTTY ZOO-KE EPER!!"' 1900PRINT"Hidden behind one of three do ors is a"''"lion!"''"You must pick a saf e door." 1910FORY=10 TO 17:VDU31,4,Y:PRINT" ":VDU31,16,Y:PRINT" ":VDU31,27,Y :PRINT" ":NEXT Y 1920VDU31,7,14:PRINT"1":VDU31,19,14:PRI NT"2":VDU31,30,14:PRINT"3" 1930VDU31,0,20:PRINT "You choose door n umber? "; 1940REPEAT:A$=GET$:UNTIL A$="1" OR A$=" 2" OR A$="3":PRINTA$ 1950D=VAL(A$):DOOR=RND(3):IF D=DOOR A$= "LION!" ELSE A$="EMPTY" 1960IFD=1X=5 1970IFD=2X=17 1980IFD=3X=28 1990FORY=16 TO 11 STEP -1 2000VDU31,X,Y,32,32,32,32,32 2010SOUND&0011,-10,100-Y*3,-1:I=INKEY(1 00) 2020NEXT:SOUND&0011,0,0,0:VDU31,X,11:PR INTA$:VDU31,0,22 2030IFD=DOOR PRINT"Aaargh! Grrr! Chomp! Snarl! Crunch!":I=INKEY(200):CLS:PROCDE AD 2040 PRINT"Phew! Escaped! That was luck y.":I=INKEY(200):CLS:PROCMAP:ENDPROC 2050DEFPROCCRUSHER 2060CLS:PRINT"Oh! No! It's the Alphabet Crusher!"''"You must press the right le tter (A-Z) to"'"stop the roller advancin g!" 2070l%=RND(27)-1:l%=ASC("A")+l%-1 2080L$=CHR$(l%) 2090I=INKEY(300):CLS 2100VDU31,19,20,224:SAME=FALSE 2110A%=-1:REPEAT:A%=A%+1:VDU31,0,A%:PRI NTSTRING$(40," "):SOUND&0011,-10,A%*2+60 ,-1 2120REPEAT:A$=GET$:UNTILA$<>"" 2130IFA$=L$SAME=TRUE 2140UNTIL SAME OR A%=19 2150SOUND&0011,0,0,0 2160IFNOTSAME VDU31,0,20:PRINTSTRING$(4 0," "):SOUND0,-10,6,10 2170IFSAME VDU12:PRINT"Well done you st opped the Crusher before"'"it was too la te with the letter ";L$;".":FOR I=1 TO 9 000:NEXT:CLS:PROCMAP:ENDPROC 2180COLOUR0:COLOUR129 2190VDU12,31,0,7 2200PRINT" " 2210PRINT" " 2220PRINT" " 2230PRINT" " 2240PRINT" " 2250I=INKEY(600):CLS:PROCDEAD:ENDPROC 2260DEFPROCEDNA 2270CLS:PRINT"The wicked witch Edna app ears in a puff"''"of foul smelling smoke . 'Your having"''"too much of an easy th ing',she says." 2280PRINT'"Do you agree (Y/N) ?"; 2290REPEAT:A$=GET$:UNTIL A$="Y" OR A$=" N" 2300PRINTA$' 2310IF RND(1)>.5 THEN N=TRUE ELSE N=FAL SE 2320IF A$="Y" AND N PROCOK(1) 2330IF A$="N" AND N PROCOK(2) 2340IF A$="Y" AND NOT N PRINT"In that c ase you wont mind going back"''"to the s tart, will you?":PROCVARS 2350 IF A$="N" AND NOT N PRINT"Because you argued with Edna she sends"''"you ba ck to the start.":PROCVARS 2360I=INKEY(700):CLS:PROCMAP:ENDPROC 2370DEFPROCOK(Z) 2380IF Z=1 PRINT"Because you agree with Edna she decides"''"to leave you be and dissapears." 2390IF Z=2 PRINT"Oh oh! You shouldnt ar gue with Edna."''"She raises her hands w iggles her fingers"'"and zaps off in a h uff." 2400ENDPROC