10 COM D[16,16],E[15],F[2],G[4],H$[1] 20 DIM C[9],M[20] 30 FOR X=1 TO 5 40 FOR Y=1 TO 16 50 READ D[Y,X] 60 NEXT Y 70 NEXT X 80 FOR X=1 TO 4 90 E[X]=FNC(6) 100 NEXT X 110 E[7]=E[15]=FNC(5)+5+D[E[2]-2,5] 120 E[8]=D[E[1]-2,3] 130 E[9]=D[E[1]-2,2] 140 E[10]=0 150 E[11]=FNA(150)+50 160 E[12]=2 170 E[13]=D[E[1]-2,1] 180 E[14]=D[E[3]-1,4] 190 DATA 1,1,1,1,1,2,2,2,2,2,2,2,3,4,5,6,-1,-1,-1,0,0,0,0,0,0,0 200 DATA 1,1,2,3,4,5,-3,-2,-2,-1,-1,0,0,0,0,0,0,0,1,1,2,3,4,3,2,1 210 DATA 1,0,0,0,0,0,0,-1,-1,-2,-3,-4,-2,-1,-1,-1,0,0,0,0,0,0,0,1 220 DATA 1,2,3,4 230 MAT D=CON 240 MAT READ C,M 250 MAT G=CON 260 DATA 143,11,13,13,1,1,1,1,1 270 DATA 1,1,1,1,2,2,10,10,3,3,21,21,6,30,42,210,42,30,21,10 280 DEF FNC(Z)=FNA(Z)+FNA(Z)+FNA(Z) 290 DEF FNA(Z)=INT(RND(1)*Z)+1 300 DEF FNB(Z)=INT(RND(1)*13)+2 310 H=FNB(Z) 320 I=FNB(Z) 330 PRINT "WAIT A MINUTE" 340 FOR L=1 TO 2 350 IF L=2 THEN 390 360 X=H 370 Y=I 380 GOTO 410 390 X=I 400 Y=H 410 FOR V=1 TO 15 420 IF L=2 THEN 450 430 E=21 440 GOTO 460 450 E=10 460 F=6 470 IF L=2 THEN 450 480 F=F*7 490 IF FNA(2)=2 THEN 550 500 F=F*5 510 GOTO 550 520 F=F*5 530 IF FNA(2)=2 THEN 550 540 F=F*7 550 G=6 560 IF L=2 THEN 620 570 IF FNA(2)=2 THEN 600 580 G=G*7 590 GOTO 630 600 G=G*5 610 GOTO 630 620 G=G*35 630 W=X+1 640 Y=X-1 650 IF L=2 THEN 700 660 D[X,V]=E*C[FNA(9)]*17 670 D[W,V]=F*C[FNA(9)] 680 D[Y,V]=G*C[FNA(9)] 690 GOTO 730 700 D[V,X]=E*C[FNA(9)]*17 710 D[V,W]=F*C[FNA(9)] 720 D[V,Y]=G*C[FNA(9)] 730 NEXT V 740 NEXT L 750 FOR B=1 TO 15 760 FOR C=1 TO 15 770 IF B=H OR C=I OR B-1=H OR C-1=I OR B+1=H OR C+1=I THEN 790 780 D[B,C]=M[FNA(20)]*C[FNA(9)] 790 NEXT C 800 NEXT B 810 FOR C=1 TO 16 820 D[C,16]=2 830 D[16,C]=3 840 E=D[1,C] 850 F=INT(E/7) 860 IF E#F*7 THEN 880 870 E=F 880 E=E*3 890 D[1,C]=E 900 E=D[C,1] 910 F=INT(E/5) 920 IF E#F*5 THEN 940 930 E=F 940 E=E*2 950 D[C,1]=E 960 NEXT C 970 D[H,I]=17*C[FNA(9)] 980 FOR L=1 TO 2 990 IF L=1 THEN 1020 1000 A=A-1 1010 GOTO 1030 1020 A=A+1 1030 B=D[H,A] 1040 C=INT(B/2) 1050 IF B#C*2 THEN 1070 1060 B=C 1070 C=INT(B/5) 1080 IF B#C*5 THEN 1100 1090 B=C 1100 D[H,A]=B*17 1110 NEXT L 1120 PRINT "WHAT IS YOUR NAME"; 1130 INPUT H$[1] 1140 PRINT "HAVE YOU EVER PLAYED BEFORE,";H$[1]; 1150 INPUT A$ 1160 IF A$="YES" THEN 1500 1170 IF A$#"NO" THEN 1140 1180 FOR Z=1 TO 10 1190 PRINT 1200 NEXT Z 1210 PRINT " YOU ARE A KNIGHT LOST IN A DUNGEON (LIKE A MAZE" 1220 PRINT "WITH DOORS) TRYING TO FIND YOUR WAY BACK TO THE EXIT." 1230 PRINT "YOU WILL COME ACROSS MONSTERS (ZOMBIES, SKELETONS, ECT.)" 1240 PRINT "THAT YOU MAY FIGHT. YOU WILL ALSO COME ACROSS TREASURE" 1250 PRINT "(GEMS, GOLD, ECT.) THAT YOU MAY WANT. WHEN YOU FIND THE" 1260 PRINT "EXIT YOU WILL NEED 600 IN GOLD OR YOU GO GET MORE." 1270 PRINT "+ + + + THERE ARE CERTAIN THINGS YOU" 1280 PRINT "I I I SHOULD KNOW. IF YOU WANT TO FIND ANY" 1290 PRINT "# C # E I GOLD, GEMS, OR OTHER GOODIES, INPUT" 1300 PRINT "I I I (T) TO SEARCH THE AREA THAT YOU ARE" 1310 PRINT "+ +-#-+ + IN. OTHERWISE, THE ONLY OTHER MOVE" 1320 PRINT "I I I YOU CAN INPUT IS A DIRECTION; EITHER" 1330 PRINT "# C # X I NORTH(N), SOUTH(S), EAST(E), OR WEST(W)." 1340 PRINT "I I I THE X IN THE CENTER MARKS THE AREA" 1350 PRINT "+ +---+-#-+ WHERE YOU ARE AT THE PRESENT MOMENT." 1360 PRINT "I I I THE C'S MEAN THAT THAT AREA IS A CORRIDOR" 1370 PRINT "# C # I (ONE OF TWO THAT INTERSECT). THE" 1380 PRINT "I I I E MEANS THAT THAT IS THE EXIT AND IT IS" 1390 PRINT "+ +-#-+ + HOME FREE, IF YOU HAVE THE GOLD!!" 1400 PRINT "(SAMPLE DUNGEON)" 1410 PRINT TAB(30);"INPUT ANYTHING TO GO ON"; 1420 INPUT A$ 1430 FOR Z=1 TO 11 1440 PRINT 1450 NEXT Z 1460 PRINT "IN THE CHART BELOW, YOU WILL HAVE TO PICK YOUR ARMOR AND" 1470 PRINT "WEAPON. AS THE NUMBERS INCREASE, SO DOES THE STRENGTH" 1480 PRINT "NECESSARE TO HANDLE THEM WELL. YOUR STRENGTH IS A NUM-" 1490 PRINT "BER BETWEEN 3-18 SO CHOOSE WISELY." 1500 PRINT "YOUR STRENGTH IS"E[1] 1510 PRINT 1520 PRINT "5=2 HANDED SWORD";TAB(45);"5=PLATE+SHIELD" 1530 PRINT "4=BASTD SWORD";TAB(45);"4=PLATE" 1540 PRINT "3=BROAD SWORD";TAB(45);"3=CHAIN MAIL+SHIELD" 1550 PRINT "2=LONG SWORD";TAB(45);"2=CHAIN MAIL" 1560 PRINT "1=SHORT SWORD";TAB(45);"1=LEATHER" 1570 PRINT 1580 PRINT "CHOOSE YOUR WEAPON"; 1590 INPUT A 1600 MAT READ M[10] 1610 DATA 16,18,19,24,19,18,26,27,28,36 1620 PRINT "SMALL(0) OR LARGE(1)"; 1630 INPUT B 1640 E[6]=A+B*5 1650 E[7]=E[7]+SGN(((B+1)*2)-3)*-1 1660 E[8]=E[8]+SGN(((B+1)*2)-3) 1670 PRINT "CHOOSE YOUR ARMOR"; 1680 INPUT A 1690 E[6]=E[6]+A/10 1700 PRINT "THERE ARE TWO INTERSECTING CORRIDORS RUNNING" 1710 PRINT "NORTH/SOUTH AND EAST/WEST.DO YOU WANT TO BE RANDOMLY" 1720 PRINT "PLACES (RP) OR PLACES AT THE TOP OF THE NORTH/SOUTH" 1730 PRINT "CORRIDOR (CP)"; 1740 INPUT A$ 1750 IF A$="RP" THEN 1800 1760 IF A$#"CP" THEN 1700 1770 G[2]=1 1780 G[2]=I 1790 GOTO 1820 1800 G[2]=FNA(15) 1810 G[3]=FNA(15) 1820 PRINT "DO YOU WANT THE ENTRANCE RANDOMLY PLACED (RP) OR" 1830 PRINT "PLACED AT THE TOP OF THE NORTH SOUTH CORRIDOR(CP)" 1840 INPUT A$ 1850 IF A$="RP" THEN 1900 1860 IF A$#"CP" THEN 1820 1870 F[1]=1 1880 F[2]=I 1890 GOTO 1920 1900 F[1]=FNA(15) 1910 F[2]=I 1920 A=D[F[1],F[2]] 1930 IF A/11#INT(A/11) THEN 1950 1940 A=A/11 1950 D[F[1],F[2]]=A 1960 IF FNA(2)=2 THEN 2020 1970 FOR X=1 TO 150 1980 NEXT X 1990 A=FNA(100) 2000 PRINT "YOU GET AND EXTRA"A"GOLD PIECES" 2010 E[11]=E[11]+A 2020 IF FNA(4)#4 THEN 2170 2030 FOR X=1 TO 150 2040 NEXT X 2050 PRINT "YOU FIND A POTION" 2060 A=FNA(3) 2070 ON FNA(3) THEN 2110,2140 2080 PRINT "IT GIVES YOU"A"HIT +'S" 2090 E[8]=E[8]+A 2100 GOTO 2170 2110 PRINT "IT GIVES YOU"A"DAMAGE +'S" 2120 E[9]=E[9]+A 2130 GOTO 2170 2140 PRINT "IT GIVES YOU"A"EXTRA HIT POINTS" 2150 E[7]=E[7]+A 2160 E[15]=E[15]+A 2170 IF FNA(3)#3 THEN 2280 2180 A=FNA(3) 2190 FOR X=1 TO 150 2200 NEXT X 2210 PRINT "YOU GET"A"GEMS" 2220 A1=0 2230 FOR X=1 TO A 2240 A1=A1+FNA(120) 2250 NEXT X 2260 PRINT "THEY ARE WORTH"A1"GOLD PIECES" 2270 E11=E11+A1 2280 IF FNA(5)#5 THEN 2360 2290 A=FNA(3) 2300 FOR X=1 TO 150 2310 NEXT X 2320 PRINT "YOU WILL GET A PLUS"A"SWORD" 2330 E[8]=E[8]+A 2340 D[16,16]=A 2350 GOTO 2370 2360 D[16,16]=0 2370 FOR X=1 TO 150 2380 NEXT X 2390 FOR X=1 TO 10 2400 PRINT 2410 NEXT X 2420 PRINT "YOU ARE NOW GOING TO ENTER THE DUNGEON" 2430 PRINT 2440 PRINT "LOAD .DRAGN" 2450 END