feature: add "The Horrible Rotten Dancing Dragon" game (#49)

* add The Horrible Rotten Dancing Dragon game
This commit is contained in:
Jonatas de Mello 2024-05-21 23:52:13 -04:00 committed by GitHub
parent f70fe78d0a
commit 240fc1e2b9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 347 additions and 0 deletions

View File

@ -11,6 +11,7 @@ sample.charset Charset Test
simple.pong SIMPLE.PONG
sample.adventure Text Adventure (Floyd McWilliams)
sample.dragon The Horrible Rotten Dancing Dragon (Softline by Ken Rose)
sample.pacman (Not Really) ASCII Pac-Man (Michael Kemp)
sample.puzzler Puzzler (Gregg Buntin)
sample.hangman Hangman (Mike Gleason)

346
samples/sample.dragon.txt Normal file
View File

@ -0,0 +1,346 @@
5 REM * * * The Horrible Rotten Dancing Dragon ... Strikes (Softline by Ken Rose)* * *
10 REM ANOTHER ADVENTURE FROM SOFTLINE
15 REM WRITTEN FOR THE ATARI BUT EASILY TRANSPORTABLE IF YOU READ THE ACCOMPANYING ARTICLE
20 HOME:REM THIS CLEARS THE SCREEN
30 DIM N(34),S(34),E(34),W(34),OB(7),RD(34)
40 OB(1)=5:OB(2)=22:OB(3)=25:OB(4)=31:OB(5)=27:OB(6)=33:OB(7)=32
50 REM READING DATA INTO THE ARRAYS
60 FOR A=1 TO 33
70 READ X:N(A)=X:READ X:S(A)=X:READ X:E(A)=X:READ X:W(A)=X:X=0:RD(A)=0
80 NEXT A
90 R=1:GOSUB 1500:GOTO 620
100 REM PARSER
110 V1$="":N1$=""
120 PRINT :PRINT "WHAT NOW? ";:INPUT "";A$
130 HOME : PRINT DES$
140 FOR A = 1 TO LEN (A$)
150 IF MID$ (A$,A,1) = " " THEN X = A - 1: A = 0: GOTO 180
160 NEXT A
170 V1$ = A$: GOTO 300
180 V1$=LEFT$ (A$,X)
190 IF RIGHT$ (A$, LEN(A$) - X) = " " THEN N1$ = "": GOTO 300:REM BE SURE THERE IS A SPACE BETWEEN THE FIRST PAIR OF QUOTES AND NO SPACE BETWEEN THE SECOND PAIR OF QUOTES
200 N1$ = RIGHT$ (A$, LEN (A$) - (X+1)): GOTO 300
300 REM VERB-HANDLING ROUTINE
310 IF V1$="GO" THEN V1$=N1$:GOTO 500
320 IF V1$="NORTH" OR V1$="N" OR V1$="SOUTH" OR V1$="S" OR V1$="EAST" OR V1$="E" OR V1$="WEST" OR V1$="W" THEN GOTO 500
330 IF V1$="INVENTORY" OR V1$="INV" OR V1$="I" THEN GOTO 700
340 IF V1$="GET" OR V1$="TAKE" THEN GOTO 800
350 IF V1$="PUSH" OR V1$="PRESS" THEN GOTO 900
360 IF V1$="DROP" THEN GOTO 1000
370 IF V1$="QUIT" THEN GOTO 3700
380 IF V1$="HIT" OR V1$="STRIKE" OR V1$="BEAT" OR V1$="KILL" THEN GOTO 1200
390 IF V1$="EAT" THEN GOSUB 1300:GOTO 100
400 IF V1$="FEED" OR V1$="GIVE" THEN GOTO 1400
410 IF V1$="DANCE" THEN GOTO 1100
420 IF V1$="LOOK" THEN HOME: RD(R)=0: GOTO 610
490 PRINT :PRINT "I DON'T KNOW HOW TO ";V1$;".":GOTO 100
500 REM MOVING AROUND ROUTINE
510 X=R:REM STORING CURRENT ROOM NUMBER
520 IF V1$="NORTH" OR V1$="N" THEN R = N(R)
530 IF V1$="SOUTH" OR V1$="S" THEN R = S(R)
540 IF V1$="EAST" OR V1$="E" THEN R = E(R)
550 IF V1$="WEST" OR V1$="W" THEN R = W(R)
560 IF X=28 AND R=32 THEN GOTO 590
570 IF R=28 AND S(28)=32 THEN GOTO 3570:REM RETURNING TO DRAGON'S CAVE
580 IF X=28 THEN GOTO 3590:REM TRAPPED IN DRAGON'S CAVE
590 IF R>0 THEN X=R:HOME:GOTO 610:REM YOU'VE MOVED AND X WILL BE USED IN SEARCHING FOR OBJECTS
600 IF R=0 THEN PRINT :PRINT "YOU CAN'T MOVE THAT WAY (I THINK).":R=X:X=0:GOTO 100:REM ORIGINAL ROOM VALUE SETUP
610 IF R>19 THEN GOTO 618
612 ON R GOSUB 1510,1530,1550,1570,1590,1610,1630,1650,1670,1690,1710,1730,1750,1770,1790,1810,1830,1850,1870
615 GOTO 620
618 ON (R-19) GOSUB 1890,1910,1930,1950,1970,1990,2010,2030,2050,2070,2090,2110,2130,2150
620 PRINT :PRINT "OBJECTS HERE ARE:":PRINT
630 X=R:GOSUB 2300
640 X=0
650 PRINT "EXITS: ";
651 IF N(R)>0 THEN PRINT "NORTH ";
652 IF S(R)>0 THEN PRINT "SOUTH ";
653 IF E(R)>0 THEN PRINT "EAST ";
654 IF W(R)>0 THEN PRINT "WEST";
655 PRINT
690 GOTO 100
700 REM INVENTORY ROUTINE
710 X=34
720 PRINT :PRINT "YOU ARE CARRYING: ":PRINT
730 GOSUB 2300
740 GOTO 100
800 REM GET ROUTINE
810 IF N1$="" THEN PRINT :PRINT "DON'T BE SILLY, I NEED A NOUN!":GOTO 890
820 GOSUB 2200
830 IF OB(X)=R OR OB(X)=34 THEN GOTO 850
840 PRINT :PRINT "YOU CAN'T, AT THE MOMENT.":PRINT :GOTO 890
850 IF X=3 AND OB(7)<34 THEN GOTO 3410
860 OB(X)=34
870 IF OB(3)=34 THEN GOTO 3400
880 PRINT :PRINT "YOU'VE GOT THE ";N1$;".":PRINT
890 X=0:GOTO 100
900 REM PRESS ROUTINE
910 IF N1$="" THEN PRINT :PRINT "DON'T BE SILLY, I NEED A NOUN!":GOTO 890
920 IF R=11 OR R=18 THEN GOTO 940
930 GOTO 990
940 IF R=18 THEN GOTO 980
950 IF OB(1)=34 THEN GOTO 3060
960 IF N1$="BUTTON" THEN GOTO 3050
970 GOTO 3040
980 IF N1$="ROCK" OR N1$="STONE" THEN GOTO 3220
990 PRINT :PRINT "I CAN'T ";V1$;" A ";N1$;".":PRINT :GOTO 100
1000 REM ROUTINE TO DROP OBJECTS
1010 GOSUB 2200
1020 IF OB(X)=34 THEN GOTO 1040
1030 PRINT :PRINT "I'M NOT CARRYING THE ";N1$;".":PRINT :GOTO 1080
1040 OB(X)=R
1050 IF N1$="WAGON" AND OB(7)=R THEN GOTO 3420
1060 PRINT :PRINT "I'VE DROPPED THE ";N1$;".":PRINT
1070 IF R=28 AND OB(X)=28 THEN OB(X)=0:GOTO 3580:REM THE DRAGON'S GONNA EAT IT
1080 X=0
1090 GOTO 100
1100 REM DANCE ROUTINE (SO TO SPEAK)
1110 PRINT: PRINT "YOU START TO HUM A CATCHY LITTLE TUNE. YOU GRACEFULLY LEAP UP IN THE AIR, DO A PIROUETTE, LAND,";
1115 PRINT "DO A CARTWHEEL,":PRINT "AND TAKE A BOW."
1120 IF R=28 THEN GOTO 3530
1130 PRINT :PRINT "FURRY LITTLE CREATURES APPEAR, APPLAUD FURRIOUSLY, AND LEAVE."
1140 GOTO 100
1200 REM BEATING AND HITTING ROUTINES
1210 IF N1$="" THEN PRINT :PRINT "OKAY, BUT YOU HAVE TO TELL ME WHAT IT IS YOU WANT TO ";V1$;".":PRINT :GOTO 100
1220 IF R=9 AND OB(7)<34 THEN GOTO 3310
1230 IF R=18 AND OB(2)=34 THEN GOTO 3230
1240 IF R=18 THEN GOTO 3250
1250 IF N1$="DRUM" OR N1$="DRUMSTICK" THEN GOTO 3320
1260 IF R=28 AND OB(2)=34 THEN GOTO 3550
1270 IF R=28 THEN GOTO 3560
1280 PRINT :PRINT "YOU CAN'T ";V1$;" A ";N1$;" HERE.":GOTO 100
1300 REM EATING ROUTINES
1310 IF N1$="" THEN PRINT :PRINT "TSK, TSK, PLEASE SUPPLY A NOUN.":PRINT :RETURN
1320 IF N1$="SANDWICH" AND OB(5)=34 THEN PRINT :PRINT "YUM, YUM, THAT TASTED GOOD.":OB(5)=0:RETURN
1320 IF N1$="MCRIB" AND OB(5)=34 THEN PRINT :PRINT "YUM, YUM, THAT TASTED GOOD.":OB(5)=0:RETURN
1340 IF N1$="SANDWICH" OR N1$="MCRIB" THEN PRINT :PRINT "YOU DON'T HAVE IT.":RETURN
1350 IF N1$="DRUMSTICK" AND OB(4)=34 THEN PRINT :PRINT "YUCK, THAT TASTED AWFUL.":OB(4)=0:RETURN
1360 IF N1$="DRUMSTICK" THEN PRINT :PRINT "HOW CAN YOU, YOU DON'T HAVE IT.":RETURN
1370 PRINT :PRINT "DON'T BE SILLY. YOU CAN'T EAT THAT!":RETURN
1400 REM GIVING OR FEEDING ROUTINE
1410 GOSUB 2200
1420 IF OB(X)=34 THEN GOTO 1440
1430 PRINT :PRINT "YOU CAN'T ";V1$;" SOMETHING YOU" :PRINT "DON'T HAVE!":GOTO 100
1440 IF R=28 THEN OB(X)=0:GOTO 3580:REM THE DRAGON'S GONNA EAT IT
1450 PRINT :PRINT "I DON'T KNOW HOW TO TELL YOU THIS, BUT NO ONE WANTS IT.":GOTO 100
1500 REM ROOM DESCRIPTION SUBROUTINE
1510 DES$="YOU ARE IN A FOREST":PRINT DES$:IF RD(R)=1 THEN RETURN
1520 PRINT :PRINT "IT IS A WARM SPRING DAY IN THE FOREST PRIMEVAL. YOU ARE DRESSED IN A JERKIN. CUTE LITTLE";
1522 PRINT " FURRY CREATURES BOUND THROUGH THE WOODS.":RD(R)=1:RETURN
1530 DES$="YOU ARE IN A LEAFY FOREST":PRINT DES$:IF RD(R)=1 THEN RETURN
1535 PRINT :PRINT "THE LEAVES IN THE TREES ARE QUITE UNUSUAL SINCE THIS IS SPRING.":PRINT
1540 PRINT "THESE ARE LEAF SPRINGS.":RD(R)=1:RETURN
1550 DES$="YOU ARE IN A LEAFY GLADE":PRINT DES$:IF RD(R)=1 THEN RETURN
1560 PRINT :PRINT "AREN'T YOU GLAD YOU'RE IN THE GLADE?":RD(R)=1:RETURN
1570 DES$="YOU ARE IN THE PINE FOREST":PRINT DES$:IF RD(R)=1 THEN RETURN
1575 PRINT :PRINT "THE WIND BLOWING THROUGH THE PINES IS SINGING A SONG. YOU LISTEN CLOSELY AND CAN MAKE OUT ";
1577 PRINT "SOME OF THE WORDS.":PRINT :PRINT "THEY ARE, 'I OPINE A DRAGON TO SWEETEN MAKE SURE THAT HE'S EATEN'."
1580 RD(R)=1:RETURN
1590 DES$="ALL THE TREES ARE DEAD HERE":PRINT DES$:IF RD(R)=1 THEN RETURN
1600 RD(R)=1:RETURN :REM PUT YOUR OWN CLEVER MESSAGE ON THIS LINE
1610 DES$="YOU ARE ON A PAVED ROAD":PRINT DES$:IF RD(R)=1 THEN RETURN
1615 PRINT :PRINT "TO THE SOUTH IS THE NORTH SIDE OF A DRAWBRIDGE. THE BRIDGE LOOKS PRETTY RICKETY."
1620 RD(R)=1:RETURN
1630 DES$="YOU ARE IN THE THRONE ROOM":PRINT DES$:GOSUB 3100
1640 RETURN
1650 DES$="YOU ARE IN THE ANTECHAMBER":PRINT DES$:IF RD(R)=1 THEN RETURN
1660 PRINT :PRINT "THIS, AS YOU'LL FIND, IS NOT A VERY LARGE CASTLE. IN FACT IT HAS ONLY THREE (I THINK) ";
1665 PRINT "ROOMS.":RD(R)=1:RETURN
1670 DES$="THIS IS THE KING'S BEDROOM":PRINT DES$:IF OB(3)=34 THEN PRINT :PRINT "THE ROOM IS EMPTY.":RETURN
1680 PRINT :PRINT "THE POOR KING HAS BEEN EXPOSED TO WEREWOLF SIMPLEX II AND IS SLOWLY TURNING INTO ";
1685 PRINT "A WOLF.":PRINT :PRINT "HE EXPLAINS THAT UNLESS CURED BY THE MAGIC SPRING HE IS DOOMED SINCE HE CAN'T "
1687 PRINT "LEAVE THE PALACE.":RD(R)=1:RETURN
1690 DES$="MORE FOREST":PRINT DES$:IF RD(R)=1 THEN RETURN
1700 PRINT :PRINT "JUST MORE AND MORE FOREST":RD(R)=1:RETURN
1710 DES$="NORTH END OF BRIDGE":PRINT DES$:GOSUB 3000
1720 RETURN
1730 DES$="CAUSEWAY TO CASTLE":PRINT DES$:IF RD(R)=1 THEN RETURN
1740 PRINT :PRINT "TO THE NORTH YOU SEE A SMALL CASTLE. SMALL DOES NOT DO IT JUSTICE. IT IS REALLY SMALL. ";
1745 DES$="IF YOU WANT TO SEE ":PRINT "HOW SMALL, GO NORTH.":RD(R)=1:RETURN
1750 DES$="AND YET EVEN MORE FOREST":PRINT DES$:IF RD(R)=1 THEN RETURN
1760 PRINT :PRINT "IF YOU THINK IT'S DULL READING ABOUT THE FOREST, YOU SHOULD TRY YOUR HAND AT WRITING ABOUT ";
1765 PRINT "IT.":RD(R)=1:RETURN
1770 DES$="DARK FOREST":PRINT DES$:IF RD(R)=1 THEN RETURN
1780 PRINT :PRINT "THERE IS SOMETHING VERY STRANGE HERE. THE GROUND SOUNDS HOLLOW!":RD(R)=1:RETURN
1790 DES$="SOUTH SIDE OF DRAWBRIDGE.":PRINT DES$:IF RD(R)=1 THEN RETURN
1800 GOSUB 3070:RETURN
1810 DES$="GENTLY ROLLING HILLS":PRINT DES$:IF RD(R)=1 THEN RETURN
1820 PRINT :PRINT "THE HILLS ARE ALIVE WITH THE SOUND OF MUSIC. THEY SING:":PRINT :PRINT "DON'T PUT YOUR SHOULDER"
1825 PRINT "TO THE BOULDER,":PRINT "BUT TEST YOUR METTLE,":PRINT "AGAINST THE KETTLE.":RD(R)=1:RETURN
1830 DES$="VOLCANIC HIGHLANDS":PRINT DES$:IF RD(R)=1 THEN RETURN
1840 PRINT :PRINT "ALL ADVENTURE GAMES HAVE TO HAVE AT LEAST ONE VOLCANO. THIS VOLCANO IS ALL POOPED OUT AND ";
1845 PRINT "WILL NOT ERUPT DURING THIS GAME.":RD(R)=1:RETURN
1850 DES$="VOLCANO VALLEY":PRINT DES$:IF N(18)=14 THEN RETURN :REM IF N(19)=14 THE SECRET PASSAGE IS OPEN
1860 GOSUB 3210:RETURN
1870 DES$="MARSHY SWAMP":PRINT DES$:IF RD(R)=1 THEN RETURN
1880 PRINT :PRINT "A SMALL DINOSAUR STICKS ITS TONGUE OUT AT YOU FROM BEHIND A FERN. IT THEN DARTS AWAY."
1885 RD(R)=1:RETURN
1890 DES$="MORE MARSHY SWAMP":PRINT DES$:IF RD(R)=1 THEN RETURN
1900 PRINT :PRINT "THE SMALL DINOSAUR REAPPEARS AND HURLS A ROCK AT YOU. THE ROCK MISSES AND THE DINOSAUR DARTS ";
1905 PRINT "AWAY.":RD(R)=1:RETURN
1910 DES$="MUSHY SWAMP":PRINT DES$:IF RD(R)=1 THEN RETURN
1920 PRINT :PRINT "THE SMALL DINOSAUR TAUNTS YOU BY SAYING (IN DINOSAUR LANGUAGE):":PRINT :PRINT "'NYAH, ";
1925 PRINT "NYAH, THE DRAGON'S GONNA ":PRINT "GET YOU!'":RD(R)=1:RETURN
1930 DES$="A PLAIN":PRINT DES$:IF RD(R)=1 THEN RETURN
1940 PRINT :PRINT "OUTSIDE OF A RUSTY SWORD, THERE IS NOTHING UNUSUAL HERE.":RD(R)=1:RETURN
1950 DES$="PLAIN PLAIN":PRINT DES$:IF RD(R)=1 THEN RETURN
1960 PRINT :PRINT "NOTHING UNUSUAL HERE.":RD(R)=1:RETURN
1970 DES$="PLANE PLAIN PLAIN":PRINT DES$:IF RD(R)=1 THEN RETURN
1980 PRINT :PRINT "NOT ONLY IS NOTHING UNUSUAL HERE, BUT IT'S VERY FLAT HERE.":RD(R)=1:RETURN
1990 DES$="THE LAND OF THE MAGIC SPRING":PRINT DES$:IF RD(R)=1 THEN RETURN
2000 PRINT :PRINT "A GORGEOUS RAINBOW ARCHES ACROSS THE SKY AND PINK EGRETS FLAP HAPPILY BY. A SIGN PAINTED ";
2005 PRINT "ON THE WALL SAYS:":PRINT "'SATISFACTION GUARANTEED OR YOUR MONEY BACK!'":RD(R)=1:RETURN
2010 DES$="NONDESCRIPT LAND":PRINT DES$:IF RD(R)=1 THEN RETURN
2020 PRINT :PRINT "I SIMPLY CAN'T DESCRIBE A NONDESCRIPT LAND.":RD(R)=1:RETURN
2030 DES$="BREAK LAND":PRINT DES$:IF RD(R)=1 THEN RETURN
2040 PRINT :PRINT "LOOKING AROUND YOU SEE PICNIC TABLES AND GARBAGE CANS OVERFLOWING WITH LITTER. ";
2045 PRINT "HOWEVER, IT APPEARS THAT YOU FRIGHTENED SOMEONE OR SOMETHING AWAY AS THEY LEFT THEIR LUNCH ON THE ";
2047 PRINT "TABLE.":RD(R)=1:RETURN
2050 DES$="LAIR OF THE DRAGON":PRINT DES$:GOTO 3500:REM OFF TO THE DRAGON ROUTINES
2060 REM DON'T NEED SECONDARY DESCRIPTIONS HERE
2070 DES$="TWISTY LITTLE MAZES":PRINT DES$:IF RD(R)=1 THEN RETURN
2080 PRINT :PRINT "JUST KIDDING. NO MAZES IN THIS GAME. IF YOU WANT TO SEE MY FEELING ON MAZES SEE THE LAST ";
2085 PRINT "ISSUE OF 'SOFTLINE'.":RD(R)=1:RETURN
2090 DES$="ENTRANCE TO MAGIC LAND":PRINT DES$:IF RD(R)=1 THEN RETURN
2100 PRINT :PRINT "MAGIC LAND IS TOO GORGEOUS FOR WORDS.":RD(R)=1:RETURN
2110 DES$="COLONEL'S CAVERN":PRINT DES$:IF RD(R)=1 THEN RETURN
2120 PRINT :PRINT "THIS APPEARS TO HAVE BEEN SOME SORT OF QUICK FOOD PLACE AT ONE TIME. THERE IS THE SMELL OF ";
2125 PRINT "GREASE IN THE AIR.":RD(R)=1:RETURN
2130 DES$="VERY SECRET CAVE":PRINT DES$:IF RD(R)=1 THEN RETURN
2140 PRINT :PRINT "SOMEONE HAS SPRAY PAINTED THIS CAVE AND SCRAWLED GRAFFITI ALL OVER THE WALL. I WON'T ";
2145 PRINT "GIVE ANY MORE DETAILS ":PRINT "AS I'M NOT THAT SORT OF COMPUTER.":RD(R)=1:RETURN
2150 DES$="BOOM BOOM ROOM":PRINT DES$:IF RD(R)=1 THEN RETURN
2160 PRINT :PRINT "ISN'T THAT RICH?":RD(R)=1:RETURN
2200 REM SUBROUTINE TO CHECK NOUNS
2205 X=0
2210 IF N1$="STICK" THEN X=1
2220 IF N1$="SWORD" THEN X=2
2230 IF N1$="SPRING" THEN X=3
2240 IF N1$="DRUMSTICK" THEN X=4
2250 IF N1$="MCRIB" OR N1$="SANDWICH" THEN X=5
2260 IF N1$="DRUM" THEN X=6
2270 IF N1$="WAGON" THEN X=7
2275 IF X=0 THEN PRINT "BE REALISTIC":POP:GOTO 100
2280 RETURN
2300 REM SUBROUTINE TO CHECK NOUNS
2310 IF X=OB(1) THEN PRINT "A STICK":Y=1
2320 IF X=OB(2) THEN PRINT "A SWORD":Y=1
2330 IF X=OB(3) THEN PRINT "A MAGIC SPRING":Y=1
2340 IF X=OB(4) THEN PRINT "A DRUMSTICK":Y=1
2350 IF X=OB(5) THEN PRINT "A MCRIB SANDWICH":Y=1
2360 IF X=OB(6) THEN PRINT "A TOY DRUM":Y=1
2370 IF X=OB(7) THEN PRINT "A DRAGON WAGON":Y=1
2380 IF Y=0 THEN PRINT "NOTHING"
2390 PRINT
2400 Y=0
2410 RETURN
2500 REM THESE ARE THE ROOM DATA STATEMENTS
2510 DATA 0,6,2,0
2520 DATA 0,0,3,1
2530 DATA 0,0,4,2
2540 DATA 0,0,5,3
2550 DATA 0,10,0,4
2560 DATA 1,11,0,0
2570 DATA 0,0,8,0
2580 DATA 0,12,9,7
2590 DATA 0,0,0,8
2600 DATA 5,14,0,0
2610 DATA 6,0,12,0
2620 DATA 8,0,13,11
2630 DATA 0,0,14,12
2640 DATA 10,0,0,13
2650 DATA 0,19,16,0
2660 DATA 0,0,17,15
2670 DATA 0,0,18,16
2680 DATA 0,0,0,17
2690 DATA 15,20,0,0
2700 DATA 19,21,0,0
2710 DATA 20,22,0,0
2720 DATA 21,26,23,0
2730 DATA 0,27,24,22
2740 DATA 0,29,0,23
2750 DATA 0,30,0,0
2760 DATA 22,31,27,0
2770 DATA 23,0,28,26
2780 DATA 0,0,0,0
2790 DATA 24,0,30,28
2800 DATA 25,33,0,29
2810 DATA 26,0,0,0
2820 DATA 28,29,0,0
2830 DATA 30,0,0,0
3000 REM DRAWBRIDGE ROUTINES
3010 IF S(11)=15 THEN PRINT :PRINT "THE BRIDGE IS DOWN.":GOTO 3030
3020 PRINT :PRINT "THE BRIDGE IS UP BUT THERE IS A LARGE BUTTON JUST OUT OF YOUR REACH."
3030 PRINT :PRINT "A SIGN UNDER THE BUTTON SAYS: 'UNDER NO CIRCUMSTANCES PUSH THIS BUTTON!'":RETURN
3040 PRINT :PRINT "WHOEVER HEARD OF PRESSING A BUTTON WITH A ";N1$;"?":PRINT :GOTO 100
3050 PRINT :PRINT "YOU LEAP HIGH IN THE AIR AND PRESS THE BUTTON WITH YOUR HAND. THE POISONED LIZARD LIVING ";
3055 PRINT :PRINT "IN THE BUTTONHOLE ":PRINT "PRESSES YOUR HAND WITH ITS FANGS AND...":GOTO 3700
3060 PRINT :PRINT "I'LL PRESS THE BUTTON WITH YOUR STICK SO THE BRIDGE WILL DROP.":PRINT
3065 PRINT "OOPS, I'VE DROPPED THE STICK INTO THE RIVER":OB(1)=0:S(11)=15:GOTO 100
3070 PRINT :PRINT "AS YOU PASS OVER THE DRAWBRIDGE A THREE-TOED OGRE RUNS FROM UNDER THE BRIDGE CARRYING ";
3075 PRINT "YOUR STICK. HE PRESSES ";:PRINT "THE BUTTON, CATCHES THE POISONED LIZARD FROM THE BUTTONHOLE ";
3080 PRINT "AND EATS IT.":PRINT :PRINT "THE BRIDGE RAISES HIGH UP IN THE AIR, MAKING IT IMPOSSIBLE TO RETURN."
3085 RD(R)=1:RETURN
3100 REM THRONE ROOM ROUTINES
3110 IF OB(7)=34 AND OB(3)=34 THEN GOTO 3130
3120 PRINT :PRINT "THE THRONE ROOM IS EMPTY AND FAIRLY CLEAN EXCEPT FOR A DUSTY TAPESTRY ON THE WALL. ";
3125 PRINT "THE TAPESTRY DEPICTS A":PRINT "DRAGON IN A CAVE EATING A MCRIB SANDWICH.":RETURN
3130 PRINT :PRINT "THE KING JUMPS UP AND DOWN ON THE MAGIC SPRING WHICH ACTIVATES ITS CURATIVE POWERS. ";
3140 PRINT "HE IS CURED. ":PRINT :PRINT "TO SHOW HIS GRATITUDE HE GIVES YOU THE DUSTY TAPESTRY, A DEED TO THE ";
3145 PRINT "DRAGON'S CAVE, AND THE TAX BILL THAT THE DRAGON NEVER GOT AROUND TO PAYING ON THAT PARTICULAR ";
3147 PRINT "PIECE OF PROPERTY."
3150 PRINT :PRINT "HE ALSO GIVES YOU A COMMISSION FOR A MUCH MORE LUCRATIVE QUEST, BUT THAT IS ANOTHER ADVENTURE ";
3155 PRINT "FOR ANOTHER TIME.":GOTO 3700
3200 REM VOLCANIC ROCK ROUTINE
3210 PRINT :PRINT "YOU ARE IN A WEIRD VALLEY. BLOCKING THE NORTH SIDE OF THE CLIFF IS A HUGE ROCK. THE ROCK ";
3215 PRINT "IS CHIPPED AND PRETTY":PRINT "WELL BEATEN UP AND DENTED.":PRINT :PRINT "A DENTED WITCH'S KETTLE IS ";
3218 PRINT "BOLTED DOWN HERE.":RETURN
3220 PRINT :PRINT "YOU PUSH AGAINST IT WITH ALL YOUR MIGHT BUT NOTHING SEEMS TO HAPPEN.":PRINT :GOTO 100
3230 IF N1$="KETTLE" THEN PRINT :PRINT "YOU ";V1$; " THE SWORD AGAINST THE ":PRINT "KETTLE. THE ROCK VIBRATES IN ";
3235 PRINT "TUNE ":PRINT "AND ROLLS ASIDE, REVEALING A PASSAGE TO THE NORTH.":N(18)=14:S(14)=18:GOTO 100
3240 PRINT "YOU ";V1$" THE SWORD AGAINST THE ":PRINT N1$;" BUT NOTHING HAPPENS.":GOTO 100
3250 PRINT :PRINT "YOU ";V1$;" IT WITH YOUR HAND.":PRINT :PRINT "NOTHING SEEMS TO HAPPEN EXCEPT YOUR HAND ";
3255 PRINT "HURTS.":GOTO 100
3300 REM MISCELLANEOUS HITTING AND KILLING ROUTINES
3310 PRINT :PRINT "WHAT, YOU DARE TO ";V1$" IN THE ":PRINT "PRESENCE OF THE KING?":PRINT "THE GUARDS SEIZE YOU ";
3315 PRINT "AND DRAG YOU OFF":PRINT "KICKING AND SCREAMING TO BE FED TO THE DRAGON.":PRINT :GOTO 3700
3320 REM BEATING THE DRUM
3330 IF OB(4)=34 AND OB(6)=34 THEN GOTO 3370
3340 IF OB(4) <> 34 AND OB(6) <> 34 THEN PRINT "YOU DON'T HAVE THAT.":GOTO 100
3350 IF OB(4)=34 THEN PRINT :PRINT "PERHAPS IF YOU HAD A DRUM...":GOTO 100
3360 IF OB(6)=34 THEN PRINT :PRINT "YOU HIT THE DRUM WITH YOUR HAND AND PRODUCE A MUFFLED THUD.":GOTO 100
3370 IF R=28 THEN GOTO 3620
3380 PRINT :PRINT "KABOOM, KABOOM. HITTING THE DRUM WITH THE DRUMSTICK PRODUCES A NICE BEAT. YOU'RE NO GENE ";
3385 PRINT "KRUPA (WHO?), BUT YOU'LL";:PRINT "DO IN A PINCH.":GOTO 100
3390 REM GETTING THE SPRING
3400 PRINT :PRINT "YOU PUSH AND TUG THE MAGIC METAL SPRING INTO THE WAGON AND FIND THAT YOU CAN NOW ";
3405 PRINT "TRANSPORT IT. AREN'T YOU CLEVER, YOU RASCAL YOU.":GOTO 890
3410 PRINT :PRINT "YOU CAN'T SEEM TO MOVE THE HEAVY SPRING.":GOTO 890
3420 OB(3)=R:PRINT :PRINT "OH, OH, WITHOUT HAVING THE WAGON THE HEAVY METAL SPRING TUMBLES TO THE FLOOR."
3425 GOTO 1070
3500 REM DRAGON ROUTINES
3510 PRINT :PRINT "A HUGE, FIERCE, HUNGRY RED DRAGON GETS UP FROM ITS NEST IN THE MIDDLE OF THE CAVE.":PRINT
3515 PRINT "IT SNORTS FIRE FROM ITS NOSTRILS, BURPS, DOES A BIT OF THE OLD SOFT SHOE, AND SAYS TO YOU:":PRINT
3520 PRINT "'BOY I'M GLAD YOU MADE IT. NOT ONLY AM I BORED, BUT I'M STARVING.":PRINT "SHALL WE DANCE, OR ";
3525 PRINT "SHALL YOU":PRINT "FEED ME FIRST?'":GOTO 100
3530 PRINT :PRINT "THE DRAGON LOOKS AT YOU IN DISGUST. HE GETS UP AND SAYS, ":PRINT "'THAT'S AWFUL. THIS IS ";
3535 PRINT "HOW YOU DO IT.'":PRINT "HE IS EXTREMELY CLUMSY AND SAYS,":PRINT "'I JUST CAN'T SEEM TO GET THE"
3537 PRINT "TEMPO RIGHT.'":PRINT :PRINT "HE IS GETTING MADDER AND MADDER. HE LOOKS AT YOU, SNARLS, AND SAYS, "
3540 PRINT "'WELL, IF YOU WON'T HELP ME.....'CHOMP!!":GOTO 3700
3550 PRINT :PRINT "YOU WHIP OUT YOUR TRUSTY SWORD AND LUNGE.":PRINT :PRINT "THE DRAGON LOOKS AT YOU AND SAYS: "
3555 PRINT "HOW THOUGHTFUL, HE BROUGHT HIS OWN TOOTHPICK.'":PRINT :PRINT ".......CHOMP!!!!":GOTO 3700
3560 PRINT :PRINT "YOU ATTACK THE DRAGON FURIOUSLY WITH YOUR BARE HANDS. THE DRAGON CHUCKLES AT YOU...":PRINT
3565 PRINT "'IF YOU HAD A MAGIC SWORD YOU MIGHT HAVE HAD A CHANCE.'":PRINT :PRINT "........CHOMP!!!!":GOTO 3700
3570 PRINT :PRINT "THE DRAGON NOTICES YOU REENTER.":PRINT :PRINT "'MY, THAT WAS A NICE DANCE. NOW, I'M HUNGRY!'"
3575 PRINT :PRINT "........CHOMP!!!!":GOTO 3700
3580 PRINT :PRINT "THE DRAGON GOBBLES UP THE ";N1$;".":PRINT :PRINT "'YUMMY, GOOD! WHAT (OR WHO) IS NEXT?'":GOTO 100
3590 X=0:R=28:PRINT :PRINT "YOU'RE TRAPPED IN THE DRAGON'S CAVE. IF YOU DON'T DO SOMETHING SOON YOU'RE IN BIG ";
3595 PRINT "TROUBLE.":TC=TC+1:PRINT :PRINT "YOU'VE ONLY GOT ";5-TC;" MINUTES LEFT."
3600 IF TC<5 THEN GOTO 100
3610 PRINT :PRINT "OH, NO...THE DRAGON'S GETTING UP.":PRINT :PRINT "HE'S ";
3615 PRINT "GOING TO ....CHOMP!!!!":GOTO 3700
3620 PRINT :PRINT "WOW!!! THE DRAGON IS FASCINATED.":PRINT "HE GETS UP, TAKES THE DRUM AND DRUMSTICK, ";
3625 PRINT "SNIFFS IT, AND BEGINS TO DANCE ":PRINT "AND BEAT THE DRUMP IN 3/4 TIME."
3630 PRINT :PRINT "WHILE HE'S SO OCCUPIED, YOU NOTICE HE HAS MOVED AWAY FROM A PASSAGE TO THE SOUTH.":S(28)=32
3635 GOTO 100
3700 PRINT :PRINT "AUF WIEDERSEHEN (GAME OVER)":END