Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 0 ON ERROR GOTO 4
- 1 REM AKALABETH, PORT TO GWBASIC BY NANOCHESS, JAN/28/2019 TO FEB/03/2019
- 4 CLS:KEY OFF
- 7 CLEAR:GOSUB 60000
- 8 RANDOMIZE ABS(LN)
- 9 LEVEL = 0
- 10 SCREEN 1:SCREEN 0:LOCATE 12:PRINT " WELCOME TO AKALABETH, WORLD OF DOOM!"
- 20 DIM DN%(10,10),TE%(20,20),XX%(10),YY%(10),PE%(10,3),LD%(10,5),CD%(10,3),FT%(10,5),LA%(10,3)
- 30 FOR X=0 TO 20:TE%(X,0)=1:TE%(0,X)=1:TE%(X,20)=1:TE%(20,X)=1:NEXT
- 35 LOCATE 23:PRINT " (PLEASE WAIT)";
- 40 FOR X=1 TO 19:FOR Y=1 TO 19:TE%(X,Y)=INT(RND^5*4.5)
- 41 IF TE%(X,Y)=3 AND RND>.5 THEN TE%(X,Y)=0
- 42 NEXT:PRINT ".";:NEXT
- 50 TE%(INT(RND*19+1),INT(RND*19+1))=5:TX=INT(RND*19+1):TY=INT(RND*19+1):TE%(TX,TY)=3
- 51 XX%(0)=139:YY%(0)=79
- 52 FOR X=2 TO 20 STEP 2:XX%(X/2)=INT(ATN(1/X)/ATN(1)*140+.5):YY%(X/2)=INT(XX%(X/2)*4/7)
- 53 PE%(X/2,0)=139-XX%(X/2):PE%(X/2,1)=139+XX%(X/2):PE%(X/2,2)=79-YY%(X/2):PE%(X/2,3)=79+YY%(X/2):NEXT
- 54 PE%(0,0)=0:PE%(0,1)=279:PE%(0,2)=0:PE%(0,3)=159
- 55 FOR X=1 TO 10:CD%(X,0)=139-XX%(X)/3:CD%(X,1)=139+XX%(X)/3:CD%(X,2)=79-YY%(X)*.7:CD%(X,3)=79+YY%(X):NEXT:PRINT ".";
- 56 FOR X=0 TO 9:LD%(X,0)=(PE%(X,0)*2+PE%(X+1,0))/3:LD%(X,1)=(PE%(X,0)+2*PE%(X+1,0))/3:W=LD%(X,0)-PE%(X,0)
- 57 LD%(X,2)=PE%(X,2)+W*4/7:LD%(X,3)=PE%(X,2)+2*W*4/7:LD%(X,4)=(PE%(X,3)*2+PE%(X+1,3))/3:LD%(X,5)=(PE%(X,3)+2*PE%(X+1,3))/3
- 58 LD%(X,2)=LD%(X,4)-(LD%(X,4)-LD%(X,2))*.8:LD%(X,3)=LD%(X,5)-(LD%(X,5)-LD%(X,3))*.8:IF LD%(X,3)=LD%(X,4) THEN LD%(X,3)=LD%(X,3)-1
- 59 NEXT
- 60 FOR X=0 TO 9:FT%(X,0)=139-XX%(X)/3:FT%(X,1)=139+XX%(X)/3:FT%(X,2)=139-XX%(X+1)/3:FT%(X,3)=139+XX%(X+1)/3
- 61 FT%(X,4)=79+(YY%(X)*2+YY%(X+1))/3:FT%(X,5)=79+(YY%(X)+2*YY%(X+1))/3:NEXT
- 62 FOR X=0 TO 9:LA%(X,0)=(FT%(X,0)*2+FT%(X,1))/3:LA%(X,1)=(FT%(X,0)+2*FT%(X,1))/3:LA%(X,3)=FT%(X,4):LA%(X,2)=159-LA%(X,3):NEXT
- 68 COLOR 3
- 70 GOSUB 100:GOTO 1000
- 90 FOR X=0 TO 9:FOR Y=0 TO 5:PRINT LD%(X,Y);" ";:NEXT:PRINT:NEXT:INPUT Q$
- 100 GOSUB 60900:FOR Y=-1 TO 1:FOR X=-1 TO 1
- 105 LINE (138,75)-(142,75):LINE (140,73)-(140,77)
- 110 ZZ=TE%(TX+X,TY+Y):X1=65+(X+1)*50:Y1=(Y+1)*50
- 120 IF ZZ=2 THEN LINE (X1+20,Y1+20)-(X1+30,Y1+20):LINE -(X1+30,Y1+30):LINE -(X1+20,Y1+30):LINE -(X1+20,Y1+20)
- 130 IF ZZ=3 THEN LINE (X1+10,Y1+10)-(X1+20,Y1+10):LINE -(X1+20,Y1+40):LINE -(X1+10,Y1+40):LINE -(X1+10,Y1+30):LINE -(X1+40,Y1+30)
- 135 IF ZZ=3 THEN LINE -(X1+40,Y1+40):LINE -(X1+30,Y1+40):LINE -(X1+30,Y1+10):LINE -(X1+40,Y1+10):LINE -(X1+40,Y1+20):LINE -(X1+10,Y1+20):LINE -(X1+10,Y1+10)
- 140 IF ZZ=4 THEN LINE (X1+20,Y1+20)-(X1+30,Y1+30):LINE -(X1+20,Y1+30):LINE -(X1+30,Y1+20)
- 150 IF ZZ=5 THEN LINE (X1,Y1)-(X1+50,Y1):LINE -(X1+50,Y1+50):LINE -(X1,Y1+50):LINE -(X1,Y1):LINE (X1+10,Y1+10)-(X1+10,Y1+40)
- 155 IF ZZ=5 THEN LINE -(X1+40,Y1+40):LINE -(X1+40,Y1+10):LINE -(X1+10,Y1+10):LINE -(X1+40,Y1+40):LINE (X1+10,Y1+40)-(X1+40,Y1+10)
- 160 IF ZZ=1 THEN LINE (X1+10,Y1+50)-(X1+10,Y1+40):LINE -(X1+20,Y1+30):LINE -(X1+40,Y1+30):LINE -(X1+40,Y1+50):LINE (X1,Y1+10)-(X1+10,Y1+10):LINE (X1+50,Y1+10)-(X1+40,Y1+10):LINE (X1,Y1+40)-(X1+10,Y1+40):LINE (X1+40,Y1+40)-(X1+50,Y1+40)
- 170 IF ZZ=1 THEN LINE (X1+10,Y1)-(X1+10,Y1+20):LINE -(X1+20,Y1+20):LINE -(X1+20,Y1+30):LINE -(X1+30,Y1+30):LINE -(X1+30,Y1+10):LINE -(X1+40,Y1+10):LINE -(X1+40,Y1)
- 190 NEXT:NEXT:RETURN
- 200 GOSUB 60900:DI=0:COLOR 3
- 202 CE=DN%(PX+DX*DI,PY+DY*DI):LE=DN%(PX+DX*DI+DY,PY+DY*DI-DX):RI=DN%(PX+DX*DI-DY,PY+DY*DI+DX)
- 204 L1=PE%(DI,0):R1=PE%(DI,1):T1=PE%(DI,2):B1=PE%(DI,3):L2=PE%(DI+1,0):R2=PE%(DI+1,1):T2=PE%(DI+1,2):B2=PE%(DI+1,3)
- 205 CE=INT(CE):LE=INT(LE):RI=INT(RI)
- 206 MC=INT(CE/10):CE=CE-MC*10:LE=INT((LE/10-INT(LE/10))*10+.1):RI=INT((RI/10-INT(RI/10))*10+.1)
- 208 IF DI=0 THEN 216
- 210 IF CE=1 OR CE=3 OR CE=4 THEN LINE (L1,T1)-(R1,T1):LINE -(R1,B1):LINE -(L1,B1):LINE -(L1,T1)
- 212 IF CE=1 OR CE=3 THEN EN=1:GOTO 260
- 214 IF CE=4 THEN LINE (CD%(DI,0),CD%(DI,3))-(CD%(DI,0),CD%(DI,2)):LINE -(CD%(DI,1),CD%(DI,2)):LINE -(CD%(DI,1),CD%(DI,3)):EN=1:GOTO 260
- 216 IF LE=1 OR LE=3 OR LE=4 THEN LINE (L1,T1)-(L2,T2):LINE (L1,B1)-(L2,B2)
- 218 IF RI=1 OR RI=3 OR RI=4 THEN LINE (R1,T1)-(R2,T2):LINE (R1,B1)-(R2,B2)
- 220 IF LE=4 AND DI>0 THEN LINE (LD%(DI,0),LD%(DI,4))-(LD%(DI,0),LD%(DI,2)):LINE -(LD%(DI,1),LD%(DI,3)):LINE -(LD%(DI,1),LD%(DI,5))
- 222 IF LE=4 AND DI=0 THEN LINE (0,LD%(DI,2)-3)-(LD%(DI,1),LD%(DI,3)):LINE -(LD%(DI,1),LD%(DI,5))
- 224 IF RI=4 AND DI>0 THEN LINE (279-LD%(DI,0),LD%(DI,4))-(279-LD%(DI,0),LD%(DI,2)):LINE -(279-LD%(DI,1),LD%(DI,3)):LINE -(279-LD%(DI,1),LD%(DI,5))
- 226 IF RI=4 AND DI=0 THEN LINE (279,LD%(DI,2)-3)-(279-LD%(DI,1),LD%(DI,3)):LINE -(279-LD%(DI,1),LD%(DI,5))
- 228 IF LE=3 OR LE=1 OR LE=4 THEN 234
- 230 IF DI<>0 THEN LINE (L1,T1)-(L1,B1)
- 232 LINE (L1,T2)-(L2,T2):LINE -(L2,B2):LINE -(L1,B2)
- 234 IF RI=3 OR RI=1 OR RI=4 THEN 240
- 236 IF DI<>0 THEN LINE (R1,T1)-(R1,B1)
- 238 LINE (R1,T2)-(R2,T2):LINE -(R2,B2):LINE -(R1,B2)
- 240 IF CE=7 OR CE=9 THEN LINE (FT%(DI,0),FT%(DI,4))-(FT%(DI,2),FT%(DI,5)):LINE -(FT%(DI,3),FT%(DI,5)):LINE -(FT%(DI,1),FT%(DI,4)):LINE -(FT%(DI,0),FT%(DI,4))
- 242 IF CE=8 THEN LINE (FT%(DI,0),158-FT%(DI,4))-(FT%(DI,2),158-FT%(DI,5)):LINE -(FT%(DI,3),158-FT%(DI,5)):LINE -(FT%(DI,1),158-FT%(DI,4)):LINE -(FT%(DI,0),158-FT%(DI,4))
- 244 IF CE=7 OR CE=8 THEN BA=LA%(DI,3):TP=LA%(DI,2):LX=LA%(DI,0):RX=LA%(DI,1):LINE (LX,BA)-(LX,TP):LINE (RX,TP)-(RX,BA)
- 246 IF CE=7 OR CE=8 THEN Y1=(BA*4+TP)/5:Y2=(BA*3+TP*2)/5:Y3=(BA*2+TP*3)/5:Y4=(BA+TP*4)/5:LINE (LX,Y1)-(RX,Y1):LINE (LX,Y2)-(RX,Y2):LINE (LX,Y3)-(RX,Y3):LINE (LX,Y4)-(RX,Y4)
- 248 IF DI>0 AND CE=5 THEN LINE (139-10/DI,PE%(DI,3))-(139-10/DI,PE%(DI,3)-10/DI):LINE -(139+10/DI,PE%(DI,3)-10/DI):LINE -(139+10/DI,PE%(DI,3)):LINE -(139-10/DI,PE%(DI,3))
- 249 IF CE=5 AND DI>0 THEN COLOR 1:PRINT "CHEST!":COLOR 3
- 250 IF DI>0 AND CE=5 THEN LINE (139-10/DI,PE%(DI,3)-10/DI)-(139-5/DI,PE%(DI,3)-15/DI):LINE -(139+15/DI,PE%(DI,3)-15/DI):LINE -(139+15/DI,PE%(DI,3)-5/DI):LINE -(139+10/DI,PE%(DI,3))
- 252 IF DI>0 AND CE=5 THEN LINE (139+10/DI,PE%(DI,3)-10/DI)-(139+15/DI,PE%(DI,3)-15/DI)
- 260 IF MC<1 THEN 490
- 265 B=79+YY%(DI):C=139
- 266 COLOR 1:IF MC=8 THEN PRINT "CHEST!";:GOSUB 60868:PRINT:COLOR 3:GOTO 269
- 267 PRINT M$(MC);:GOSUB 60868:PRINT:COLOR 3
- 269 IF DI=0 THEN 490
- 270 ON MC GOTO 300,310,320,330,340,350,360,370,380,390
- 280 GOTO 490
- 300 LINE (C-23/DI,B)-(C-15/DI,B):LINE -(C-15/DI,B-15/DI):LINE -(C-8/DI,B-30/DI):LINE -(C+8/DI,B-30/DI):LINE -(C+15/DI,B-15/DI):LINE -(C+15/DI,B):LINE -(C+23/DI,B)
- 301 LINE (C,B-26/DI)-(C,B-65/DI):LINE (C-2/DI+.5,B-38/DI)-(C+2/DI+.5,B-38/DI):LINE (C-3/DI+.5,B-45/DI)-(C+3/DI+.5,B-45/DI):LINE (C-5/DI+.5,B-53/DI)-(C+5/DI+.5,B-53/DI)
- 302 LINE (C-23/DI,B-56/DI)-(C-30/DI,B-53/DI):LINE -(C-23/DI,B-45/DI):LINE -(C-23/DI,B-53/DI):LINE -(C-8/DI,B-38/DI)
- 303 LINE (C-15/DI,B-45/DI)-(C-8/DI,B-60/DI):LINE -(C+8/DI,B-60/DI):LINE -(C+15/DI,B-45/DI):LINE (C+15/DI,B-42/DI)-(C+15/DI,B-57/DI):LINE (C+12/DI,B-45/DI)-(C+20/DI,B-45/DI)
- 304 LINE (C,B-75/DI)-(C-5/DI+.5,B-80/DI):LINE -(C-8/DI,B-75/DI):LINE -(C-5/DI+.5,B-65/DI):LINE -(C+5/DI+.5,B-65/DI):LINE -(C+5/DI+.5,B-68/DI):LINE -(C-5/DI+.5,B-68/DI):LINE -(C-5/DI+.5,B-65/DI)
- 305 LINE -(C+5/DI+.5,B-65/DI):LINE -(C+8/DI,B-75/DI):LINE -(C+5/DI+.5,B-80/DI):LINE -(C-5/DI+.5,B-80/DI):PSET (C-5/DI+.5,B-72/DI):PSET (C+5/DI+.5,B-72/DI)
- 309 GOTO 490
- 310 LINE (C,B-56/DI)-(C,B-8/DI):LINE -(C+10/DI,B):LINE -(C+30/DI,B):LINE -(C+30/DI,B-45/DI):LINE -(C+10/DI,B-64/DI):LINE -(C,B-56/DI)
- 311 LINE -(C-10/DI,B-64/DI):LINE -(C-30/DI,B-45/DI):LINE -(C-30/DI,B):LINE -(C-10/DI,B):LINE -(C,B-8/DI)
- 312 LINE (C-10/DI,B-64/DI)-(C-10/DI,B-75/DI):LINE -(C,B-83/DI):LINE -(C+10/DI,B-75/DI):LINE -(C,B-79/DI):LINE -(C-10/DI,B-75/DI):LINE -(C,B-60/DI):LINE -(C+10/DI,B-75/DI):LINE -(C+10/DI,B-64/DI)
- 319 GOTO 490
- 320 LINE (C+5/DI,B-30/DI)-(C,B-25/DI):LINE -(C-5/DI,B-30/DI):LINE -(C-15/DI,B-5/DI):LINE -(C-10/DI,B):LINE -(C+10/DI,B):LINE -(C+15/DI,B-5/DI)
- 321 LINE -(C+20/DI,B-5/DI):LINE -(C+10/DI,B):LINE -(C+15/DI,B-5/DI):LINE -(C+5/DI,B-30/DI):LINE -(C+10/DI,B-40/DI):LINE -(C+3/DI+.5,B-35/DI):LINE -(C-3/DI+.5,B-35/DI):LINE -(C-10/DI,B-40/DI):LINE -(C-5/DI,B-30/DI)
- 322 LINE (C-5/DI,B-33/DI)-(C-3/DI+.5,B-30/DI):LINE (C+5/DI,B-33/DI)-(C+3/DI+.5,B-30/DI):LINE (C-5/DI,B-20/DI)-(C-5/DI,B-15/DI)
- 323 LINE (C+5/DI,B-20/DI)-(C+5/DI,B-15/DI):LINE (C-7+DI,B-20/DI)-(C-7/DI,B-15/DI):LINE (C+7/DI,B-20/DI)-(C+7/DI,B-15/DI)
- 329 GOTO 490
- 330 LINE (C,B)-(C-15/DI,B):LINE -(C-8/DI,B-8/DI):LINE -(C-8/DI,B-15/DI):LINE -(C-15/DI,B-23/DI):LINE -(C-15/DI,B-15/DI):LINE -(C-23/DI,B-23/DI)
- 331 LINE -(C-23/DI,B-45/DI):LINE -(C-15/DI,B-53/DI):LINE -(C-8/DI,B-53/DI):LINE -(C-15/DI,B-68/DI):LINE -(C-8/DI,B-75/DI):LINE -(C,B-75/DI)
- 332 LINE (C,B)-(C+15/DI,B):LINE -(C+8/DI,B-8/DI):LINE -(C+8/DI,B-15/DI):LINE -(C+15/DI,B-23/DI):LINE -(C+15/DI,B-15/DI):LINE -(C+23/DI,B-23/DI)
- 333 LINE -(C+23/DI,B-45/DI):LINE -(C+15/DI,B-53/DI):LINE -(C+8/DI,B-53/DI):LINE -(C+15/DI,B-68/DI):LINE -(C+8/DI,B-75/DI):LINE -(C,B-75/DI)
- 334 LINE (C-15/DI,B-68/DI)-(C+15/DI,B-68/DI):LINE (C-8/DI,B-53/DI)-(C+8/DI,B-53/DI):LINE (C-23/DI,B-15/DI)-(C+8/DI,B-45/DI)
- 335 LINE (C-8/DI,B-68/DI)-(C,B-60/DI):LINE -(C+8/DI,B-68/DI):LINE -(C+8/DI,B-60/DI):LINE -(C-8/DI,B-60/DI):LINE -(C-8/DI,B-68/DI)
- 336 LINE (C,B-38/DI)-(C-8/DI,B-38/DI):LINE -(C+8/DI,B-53/DI):LINE -(C+8/DI,B-45/DI):LINE -(C+15/DI,B-45/DI):LINE -(C,B-30/DI):LINE -(C,B-38/DI)
- 339 GOTO 490
- 340 LINE (C-10/DI,B-15/DI)-(C-10/DI,B-30/DI):LINE -(C-15/DI,B-20/DI):LINE -(C-15/DI,B-15/DI):LINE -(C-15/DI,B):LINE -(C+15/DI,B):LINE -(C+15/DI,B-15/DI):LINE -(C-15/DI,B-15/DI)
- 341 LINE (C-15/DI,B-10/DI)-(C+15/DI,B-10/DI):LINE (C-15/DI,B-5/DI)-(C+15/DI,B-5/DI)
- 342 LINE (C,B-15/DI)-(C-5/DI,B-20/DI):LINE -(C-5/DI,B-35/DI):LINE -(C+5/DI,B-35/DI):LINE -(C+5/DI,B-20/DI):LINE -(C+10/DI,B-15/DI)
- 343 LINE (C-5/DI,B-20/DI)-(C+5/DI,B-20/DI):LINE (C-5/DI,B-25/DI)-(C+5/DI,B-25/DI):LINE (C-5/DI,B-30/DI)-(C+5/DI,B-30/DI)
- 344 LINE (C-10/DI,B-35/DI)-(C-10/DI,B-40/DI):LINE -(C-5/DI,B-45/DI):LINE -(C+5/DI,B-45/DI):LINE -(C+10/DI,B-40/DI):LINE -(C+10/DI,B-35/DI)
- 345 LINE (C-10/DI,B-40/DI)-(C,B-45/DI):LINE -(C+10/DI,B-40/DI)
- 346 LINE (C-5/DI,B-40/DI)-(C+5/DI,B-40/DI):LINE -(C+15/DI,B-30/DI):LINE -(C,B-40/DI):LINE -(C-15/DI,B-30/DI):LINE -(C-5/DI+.5,B-40/DI)
- 349 GOTO 490
- 350 LINE (C-20/DI,79-YY%(DI))-(C-20/DI,B-88/DI):LINE -(C-10/DI,B-83/DI):LINE -(C+10/DI,B-83/DI):LINE -(C+20/DI,B-88/DI):LINE -(C+20/DI,79-YY%(DI)):LINE -(C-20/DI,79-YY%(DI))
- 351 LINE (C-20/DI,B-88/DI)-(C-30/DI,B-83/DI):LINE -(C-30/DI,B-78/DI):LINE (C+20/DI,B-88/DI)-(C+30/DI,B-83/DI):LINE -(C+40/DI,B-83/DI)
- 352 LINE (C-15/DI,B-86/DI)-(C-20/DI,B-83/DI):LINE -(C-20/DI,B-78/DI):LINE -(C-30/DI,B-73/DI):LINE -(C-30/DI,B-68/DI):LINE -(C-20/DI,B-63/DI)
- 353 LINE (C-10/DI,B-83/DI)-(C-10/DI,B-58/DI):LINE -(C,B-50/DI):LINE (C+10/DI,B-83/DI)-(C+10/DI,B-78/DI):LINE -(C+20/DI,B-73/DI):LINE -(C+20/DI,B-40/DI)
- 354 LINE (C+15/DI,B-85/DI)-(C+20/DI,B-78/DI):LINE -(C+30/DI,B-76/DI):LINE -(C+30/DI,B-60/DI)
- 355 LINE (C,B-83/DI)-(C,B-73/DI):LINE -(C+10/DI,B-68/DI):LINE -(C+10/DI,B-63/DI):LINE -(C,B-58/DI)
- 359 GOTO 490
- 360 LINE (C+5/DI+.5,B-10/DI)-(C-5/DI+.5,B-10/DI):LINE -(C,B-15/DI):LINE -(C+10/DI,B-20/DI):LINE -(C+5/DI+.5,B-15/DI):LINE -(C+5/DI+.5,B-10/DI)
- 361 LINE -(C+7/DI+.5,B-6/DI):LINE -(C+5/DI+.5,B-3/DI):LINE -(C-5/DI+.5,B-3/DI):LINE -(C-7/DI+.5,B-6/DI):LINE -(C-5/DI+.5,B-10/DI)
- 362 LINE (C+2/DI+.5,B-3/DI)-(C+5/DI+.5,B):LINE -(C+8/DI,B):LINE (C-2/DI+.5,B-3/DI)-(C-5/DI+.5,B):LINE -(C-8/DI,B):PSET (C+3/DI+.5,B-8/DI):PSET (C-3/DI+.5,B-8/DI):LINE (C+3/DI+.5,B-5/DI)-(C-3/DI+.5,B-5/DI)
- 363 GOTO 490
- 370 LINE (139-10/DI,PE%(DI,3))-(139-10/DI,PE%(DI,3)-10/DI):LINE -(139+10/DI,PE%(DI,3)-10/DI):LINE -(139+10/DI,PE%(DI,3)):LINE -(139-10/DI,PE%(DI,3))
- 371 LINE (139-10/DI,PE%(DI,3)-10/DI)-(139-5/DI,PE%(DI,3)-15/DI):LINE -(139+15/DI,PE%(DI,3)-15/DI):LINE -(139+15/DI,PE%(DI,3)-5/DI):LINE -(139+10/DI,PE%(DI,3))
- 372 LINE (139+10/DI,PE%(DI,3)-10/DI)-(139+15/DI,PE%(DI,3)-15/DI)
- 373 GOTO 490
- 380 LINE (C-14/DI,B-46/DI)-(C-12/DI,B-37/DI):LINE -(C-20/DI,B-32/DI):LINE -(C-30/DI,B-32/DI):LINE -(C-22/DI,B-24/DI):LINE -(C-40/DI,B-17/DI):LINE -(C-40/DI,B-7/DI):LINE -(C-38/DI,B-5/DI):LINE -(C-40/DI,B-3/DI):LINE -(C-40/DI,B)
- 381 LINE -(C-36/DI,B):LINE -(C-34/DI,B-2/DI):LINE -(C-32/DI,B):LINE -(C-28/DI,B):LINE -(C-28/DI,B-3/DI):LINE -(C-30/DI,B-5/DI):LINE -(C-28/DI,B-7/DI):LINE -(C-28/DI,B-15/DI):LINE -(C,B-27/DI)
- 382 LINE (C+14/DI,B-46/DI)-(C+12/DI,B-37/DI):LINE -(C+20/DI,B-32/DI):LINE -(C+30/DI,B-32/DI):LINE -(C+22/DI,B-24/DI):LINE -(C+40/DI,B-17/DI):LINE -(C+40/DI,B-7/DI):LINE -(C+38/DI,B-5/DI):LINE -(C+40/DI,B-3/DI):LINE -(C+40/DI,B)
- 383 LINE -(C+36/DI,B):LINE -(C+34/DI,B-2/DI):LINE -(C+32/DI,B):LINE -(C+28/DI,B):LINE -(C+28/DI,B-3/DI):LINE -(C+30/DI,B-5/DI):LINE -(C+28/DI,B-7/DI):LINE -(C+28/DI,B-15/DI):LINE -(C,B-27/DI)
- 384 LINE (C+6/DI,B-48/DI)-(C+38/DI,B-41/DI):LINE -(C+40/DI,B-42/DI):LINE -(C+18/DI,B-56/DI):LINE -(C+12/DI,B-56/DI):LINE -(C+10/DI,B-57/DI):LINE -(C+8/DI,B-56/DI):LINE -(C-8/DI,B-56/DI):LINE -(C-10/DI,B-58/DI):LINE -(C+14/DI,B-58/DI)
- 385 LINE -(C+16/DI,B-59/DI)
- 386 LINE -(C+8/DI,B-63/DI):LINE -(C+6/DI,B-63/DI):LINE -(C+2/DI+.5,B-70/DI):LINE -(C+2/DI+.5,B-63/DI):LINE -(C-2/DI+.5,B-63/DI):LINE -(C-2/DI+.5,B-70/DI):LINE -(C-6/DI,B-63/DI):LINE -(C-8/DI,B-63/DI):LINE -(C-16/DI,B-59/DI):LINE -(C-14/DI,B-58/DI)
- 387 LINE -(C+10/DI,B-57/DI):LINE -(C-12/DI,B-56/DI):LINE -(C-18/DI,B-56/DI):LINE -(C-36/DI,B-47/DI):LINE -(C-36/DI,B-39/DI):LINE -(C-28/DI,B-41/DI):LINE -(C-28/DI,B-46/DI):LINE -(C-20/DI,B-50/DI):LINE -(C-18/DI,B-50/DI):LINE -(C-14/DI,B-46/DI)
- 388 GOTO 3087
- 390 LINE (C+6/DI,B-60/DI)-(C+30/DI,B-90/DI):LINE -(C+60/DI,B-30/DI):LINE -(C+60/DI,B-10/DI):LINE-(C+30/DI,B-40/DI):LINE -(C+15/DI,B-40/DI)
- 391 LINE (C-6/DI,B-60/DI)-(C-30/DI,B-90/DI):LINE -(C-60/DI,B-30/DI):LINE -(C-60/DI,B-10/DI):LINE -(C-30/DI,B-40/DI):LINE -(C-15/DI,B-40/DI)
- 392 LINE (C,B-25/DI)-(C+6/DI,B-25/DI):LINE -(C+10/DI,B-20/DI):LINE -(C+12/DI,B-10/DI):LINE -(C+10/DI,B-6/DI):LINE -(C+10/DI,B):LINE -(C+14/DI,B):LINE-(C+15/DI,B-5/DI):LINE -(C+16/DI,B):LINE -(C+20/DI,B)
- 393 LINE -(C+20/DI,B-6/DI):LINE -(C+18/DI,B-10/DI):LINE -(C+18/DI,B-20/DI):LINE -(C+15/DI,B-30/DI):LINE -(C+15/DI,B-45/DI):LINE -(C+40/DI,B-60/DI):LINE -(C+40/DI,B-70/DI)
- 394 LINE -(C+10/DI,B-55/DI):LINE -(C+6/DI,B-60/DI):LINE -(C+10/DI,B-74/DI):LINE -(C+6/DI,B-80/DI):LINE -(C+4/DI+.5,B-80/DI):LINE -(C+3/DI+.5,B-82/DI):LINE -(C+2/DI+.5,B-80/DI):LINE -(C,B-80/DI)
- 395 LINE (C,B-25/DI)-(C-6/DI,B-25/DI):LINE -(C-10/DI,B-20/DI):LINE -(C-12/DI,B-10/DI):LINE -(C-10/DI,B-6/DI):LINE -(C-10/DI,B):LINE -(C-14/DI,B):LINE -(C-15/DI,B-5/DI):LINE -(C-16/DI,B):LINE -(C-20/DI,B)
- 396 LINE -(C-20/DI,B-6/DI):LINE -(C-18/DI,B-10/DI):LINE -(C-18/DI,B-20/DI):LINE -(C-15/DI,B-30/DI):LINE -(C-15/DI,B-45/DI):LINE -(C-40/DI,B-60/DI):LINE -(C-40/DI,B-70/DI)
- 397 LINE -(C-10/DI,B-55/DI):LINE -(C-6/DI,B-60/DI):LINE -(C-10/DI,B-74/DI):LINE -(C-6/DI,B-80/DI):LINE -(C-4/DI+.5,B-80/DI):LINE -(C-3/DI+.5,B-82/DI):LINE -(C-2/DI+.5,B-80/DI):LINE -(C,B-80/DI)
- 398 LINE (C-6/DI,B-25/DI)-(C,B-6/DI):LINE -(C+10/DI,B):LINE -(C+4/DI+.5,B-8/DI):LINE -(C+6/DI,B-25/DI):LINE (C-40/DI,B-64/DI)-(C-40/DI,B-90/DI):LINE -(C-52/DI,B-80/DI):LINE -(C-52/DI,B-40/DI)
- 399 LINE (C+40/DI,B-86/DI)-(C+38/DI,B-92/DI):LINE -(C+42/DI,B-92/DI):LINE -(C+40/DI,B-86/DI):LINE -(C+40/DI,B-50/DI)
- 400 LINE (C+4/DI+.5,B-70/DI)-(C+6/DI,B-74/DI):LINE (C-4/DI+.5,B-70/DI)-(C-6/DI,B-74/DI):LINE (C,B-64/DI)-(C,B-60/DI):GOTO 490
- 490 IF EN=1 THEN EN=0:RETURN
- 491 DI=DI+1:GOTO 202
- 500 RANDOMIZE ABS(LN)-TX*10-TY*1000+IN*31.4
- 501 FOR X=1 TO 9:FOR Y=1 TO 9:DN%(X,Y)=0:NEXT:NEXT
- 510 FOR X=0 TO 10:DN%(X,0)=1:DN%(X,10)=1:DN%(0,X)=1:DN%(10,X)=1:NEXT
- 520 FOR X=2 TO 8 STEP 2:FOR Y=1 TO 9:DN%(X,Y)=1:DN%(Y,X)=1:NEXT:NEXT
- 530 FOR X=2 TO 8 STEP 2:FOR Y=1 TO 9 STEP 2
- 540 IF RND>.95 THEN DN%(X,Y)=2
- 541 IF RND>.95 THEN DN%(Y,X)=2
- 542 IF RND>.6 THEN DN%(Y,X)=3
- 543 IF RND>.6 THEN DN%(X,Y)=3
- 544 IF RND>.6 THEN DN%(X,Y)=4
- 545 IF RND>.6 THEN DN%(Y,X)=4
- 546 IF RND>.97 THEN DN%(Y,X)=9
- 547 IF RND>.97 THEN DN%(X,Y)=9
- 548 IF RND>.94 THEN DN%(X,Y)=5
- 549 IF RND>.94 THEN DN%(Y,X)=5
- 568 NEXT:NEXT
- 569 DN%(2,1)=0:IF IN/2=INT(IN/2) THEN DN%(7,3)=7:DN%(3,7)=8
- 570 IF IN/2<>INT(IN/2) THEN DN%(7,3)=8:DN%(3,7)=7
- 580 IF IN=1 THEN DN%(1,1)=8:DN%(7,3)=0
- 585 GOSUB 2000
- 590 RETURN
- 1000 GOSUB 60890:LINE (0,160)-(231,199),0,BF:LOCATE 21,1:PRINT "COMMAND? ";:GOSUB 60868
- 1001 X$=INKEY$:IF X$="" THEN 1001
- 1003 X=ASC(X$)
- 1004 IF LEN(X$)>1 THEN X2=ASC(MID$(X$,2)) ELSE X2=0
- 1030 IF X2=72 THEN ON SGN(IN)+1 GOTO 1100,1150
- 1040 IF X2=77 THEN ON SGN(IN)+1 GOTO 1200,1250
- 1050 IF X2=75 THEN ON SGN(IN)+1 GOTO 1300,1350
- 1060 IF X2=80 THEN ON SGN(IN)+1 GOTO 1400,1450
- 1070 IF X=13 THEN ON SGN(IN)+1 GOTO 1500,1550
- 1080 IF X=65 THEN ON SGN(IN)+1 GOTO 1600,1650
- 1081 IF X=32 THEN PRINT "PASS":GOTO 1090
- 1085 IF X=83 OR X=115 THEN 1700
- 1086 IF X=80 OR X=112 THEN IF PA=1 THEN PA=0:PRINT "PAUSE OFF":GOTO 1000
- 1087 IF X=80 OR X=112 THEN IF PA=0 THEN PA=1:PRINT "PAUSE ON":GOTO 1000
- 1089 PRINT "HUH?":GOTO 1000
- 1090 PW(0)=PW(0)-1+SGN(IN)*.9:IF PW(0)<0 THEN C(0)=0:PRINT:PRINT "YOU HAVE STARVED!!!!!":GOTO 1093
- 1091 LOCATE 22,30:PRINT "FOOD=";MID$(STR$(INT(PW(0)*10+0.5)/10),2);:GOSUB 60868:LOCATE 23,30:PRINT "H.P.=";C(0);:GOSUB 60868:LOCATE 24,30:PRINT "GOLD=";C(5);:GOSUB 60868:LOCATE 20,1
- 1092 PW(0)=INT(PW(0)*10)/10
- 1093 IF C(0)<=0 THEN 6000
- 1095 IF IN>0 THEN GOSUB 60890:LINE (0,160)-(231,199),0,BF:GOSUB 4000:IF C(0)<=0 THEN 1093
- 1096 LOCATE 22,30:PRINT "FOOD=";MID$(STR$(INT(PW(0)*10+0.5)/10),2);:GOSUB 60868:LOCATE 23,30:PRINT "H.P.=";C(0);:GOSUB 60868:LOCATE 24,30:PRINT "GOLD=";C(5);:GOSUB 60868:LOCATE 20,1
- 1097 IF IN=0 THEN GOSUB 100:GOTO 1000
- 1098 IF IN>0 THEN GOSUB 200:GOTO 1000
- 1100 PRINT "NORTH":IF TE%(TX,TY-1)=1 THEN PRINT "YOU CAN'T PASS THE MOUNTAINS":GOTO 1090
- 1110 TY=TY-1:GOTO 1090
- 1150 IF DN%(PX+DX,PY+DY)<>1 AND DN%(PX+DX,PY+DY)<10 THEN PX=PX+DX:PY=PY+DY
- 1155 PRINT "FORWARD"
- 1160 IF DN%(PX,PY)=2 THEN PRINT "AAARRRGGGHHH!!! A TRAP!":C(0)=C(0)-INT(RND*IN+3):MR=1:IN=IN+1:PRINT "FALLING TO LEVEL ";IN:GOSUB 500:GOSUB 60890:LINE (0,160)-(231,199),0,BF:GOTO 1090
- 1165 Z=0
- 1170 IF DN%(PX,PY)=5 THEN DN%(PX,PY)=0:PRINT "GOLD!!!!!":Z=INT(RND*5*IN+IN):PRINT Z;"-PIECES OF EIGHT":C(5)=C(5)+Z
- 1175 IF Z>0 THEN Z=INT(RND*6):PRINT "AND A ";W$(Z):PW(Z)=PW(Z)+1:GOTO 1090
- 1190 GOTO 1090
- 1200 PRINT "EAST":IF TE%(TX+1,TY)=1 THEN PRINT "YOU CAN'T PASS THE MOUNTAINS":GOTO 1090
- 1210 TX=TX+1:GOTO 1090
- 1250 PRINT "TURN RIGHT"
- 1255 IF DX<>0 THEN DY=DX:DX=0:GOTO 1090
- 1260 DX=-DY:DY=0:GOTO 1090
- 1300 PRINT "WEST":IF TE%(TX-1,TY)=1 THEN PRINT "YOU CAN'T PASS THE MOUNTAINS":GOTO 1090
- 1310 TX=TX-1:GOTO 1090
- 1350 PRINT "TURN LEFT"
- 1355 IF DX<>0 THEN DY=-DX:DX=0:GOTO 1090
- 1360 DX=DY:DY=0:GOTO 1090
- 1400 PRINT "SOUTH":IF TE%(TX,TY+1)=1 THEN PRINT "YOU CAN'T PASS THE MOUNTAINS":GOTO 1090
- 1410 TY=TY+1:GOTO 1090
- 1450 PRINT "TURN AROUND":DX=-DX:DY=-DY:GOTO 1090
- 1500 IF TE%(TX,TY)=3 THEN GOSUB 60080:GOSUB 60200:SCREEN 1:GOTO 1090
- 1510 IF TE%(TX,TY)=4 AND IN=0 THEN PRINT "GO DUNGEON":PRINT "PLEASE WAIT ":IN=1:GOSUB 500:DX=1:DY=0:PX=1:PY=1:GOTO 1090
- 1515 IF TE%(TX,TY)=5 THEN 7000
- 1520 PRINT "HUH?":GOTO 1000
- 1550 IF DN%(PX,PY)<>7 AND DN%(PX,PY)<>9 THEN 1580
- 1555 PRINT "GO DOWN TO LEVEL ";IN+1
- 1560 IN=IN+1:GOSUB 500:MR=1:GOTO 1090
- 1580 IF DN%(PX,PY)<>8 THEN PRINT "HUH?":GOTO 1090
- 1581 IF IN=1 THEN PRINT "LEAVE DUNGEON":IN=0:GOTO 1586
- 1584 PRINT "GO UP TO LEVEL ";IN-1
- 1585 IN=IN-1:GOSUB 500:MR=1
- 1586 IF IN=0 THEN PRINT "THOU HAST GAINED":PRINT LK;" HIT POINTS":C(0)=C(0)+LK:LK=0
- 1587 GOTO 1090
- 1600 GOTO 1090
- 1650 MN=0:DA=0:PRINT "ATTACK":PRINT "WHICH WEAPON ";:Q$=INPUT$(1)
- 1651 IF Q$="R" THEN DA=10:PRINT "RAPIER":IF PW(1)<1 THEN PRINT "NOT OWNED":GOTO 1650
- 1652 IF Q$="A" THEN DA=5:PRINT "AXE":IF PW(2)<1 THEN PRINT "NOT OWNED":GOTO 1650
- 1653 IF Q$="S" THEN DA=1:PRINT "SHIELD":IF PW(3)<1 THEN PRINT "NOT OWNED":GOTO 1650
- 1654 IF Q$="B" THEN DA=4:PRINT "BOW":IF PW(4)<1 THEN PRINT "NOT OWNED":GOTO 1650
- 1655 IF Q$="M" THEN PRINT "MAGIC AMULET":GOTO 1680
- 1656 IF Q$="B" AND PT$="M" THEN PRINT "MAGES CAN'T USE BOWS!":GOTO 1650
- 1657 IF Q$="R" AND PT$="M" THEN PRINT "MAGES CAN'T USE RAPIERS!":GOTO 1650
- 1659 IF DA=0 THEN PRINT "HANDS"
- 1660 IF DA=5 OR DA=4 THEN 1670
- 1661 MN=DN%(PX+DX,PY+DY)/10:MN=INT(MN)
- 1662 IF MN<1 OR C(2)-RND*251663 PRINT "HIT!!! ":DA=(RND*DA+C(1)/5):MZ%(MN,1)=MZ%(MN,1)-DA
- 1664 PRINT M$(MN);"'S HIT POINTS=";MZ%(MN,1)
- 1665 IF MZ%(MN,1)<1 THEN PRINT "THOU HAST KILLED A ";M$(MN):PRINT "THOU SHALT RECEIVE":DA=INT(MN+IN):PRINT DA;" PIECES OF EIGHT"
- 1666 IF MZ%(MN,1)<1 THEN C(5)=INT(C(5)+DA):DN%(ML%(MN,0),ML%(MN,1))=DN%(ML%(MN,0),ML%(MN,1))-10*MN:MZ%(MN,0)=0
- 1667 LK=LK+INT(MN*IN/2):IF MN=TA THEN TA=-TA
- 1668 IF PA=1 THEN PRINT "-CR- TO CONT. ";:Q$=INPUT$(1) ELSE GOSUB 60890
- 1669 LINE (0,160)-(231,199),0,BF:GOTO 1090
- 1670 IF DA=5 THEN PRINT "TO THROW OR SWING:";:Q$=INPUT$(1):IF Q$<>"T" THEN PRINT "SWING":GOTO 1661
- 1671 IF DA=5 THEN PRINT "THROW":PW(2)=PW(2)-1
- 1672 FOR Y=1 TO 5:IF PX+DX*Y<1 OR PX+DX*Y>9 OR PY+DY*Y>9 OR PY+DY*Y<0 THEN 1662
- 1673 MN=DN%(PX+DX*Y,PY+DY*Y):MN=INT(MN/10):IF MN>0 THEN 1662
- 1674 NEXT:GOTO 1662
- 1680 IF PW(5)<1 THEN PRINT "NONE OWNED":GOTO 1650
- 1681 IF PT$="F" THEN Q=INT(RND*4+1):GOTO 1685
- 1682 PRINT "1-LADDER-UP","2-LADDER-DN":PRINT "3-KILL","4-BAD??":PRINT "CHOICE ";:Q$=INPUT$(1):Q=VAL(Q$):PRINT Q:IF Q<1 OR Q>4 THEN 1682
- 1683 IF RND>.75 THEN PRINT "LAST CHARGE ON THIS AMULET!":PW(5)=PW(5)-1
- 1685 ON Q GOTO 1686,1690,1691,1692
- 1686 PRINT "LADDER UP":DN%(PX,PY)=8:GOTO 1090
- 1690 PRINT "LADDER DOWN":DN%(PX,PY)=7:GOTO 1090
- 1691 PRINT "MAGIC ATTACK":DA=10+IN:GOTO 1672
- 1692 ON INT(RND*3+1) GOTO 1693,1695,1697
- 1693 PRINT "YOU HAVE BEEN TURNED":PRINT "INTO A TOAD!"
- 1694 FOR Z2=1 TO 4:C(Z2)=3:NEXT Z2:GOTO 1090
- 1695 PRINT "YOU HAVE BEEN TURNED":PRINT "INTO A LIZARD MAN":FOR Y=0 TO 4:C(Y)=INT(C(Y)*2.5):NEXT:GOTO 1090
- 1697 PRINT "BACKFIRE":C(0)=C(0)/2:GOTO 1090
- 1700 GOSUB 60080:CLS:PRINT "PRESS ENTER TO CONTINUE";:Q$=INPUT$(1):SCREEN 0:SCREEN 1:CLS:GOTO 1090
- 2000 NM=0:FOR X=1 TO 10
- 2005 MZ%(X,0)=0:MZ%(X,1)=X+3+IN
- 2010 IF X-2>IN OR RND>.4 THEN 2090
- 2020 ML%(X,0)=INT(RND*9+1):ML%(X,1)=INT(RND*9+1)
- 2030 IF DN%(ML%(X,0),ML%(X,1))<>0 THEN 2020
- 2040 IF ML%(X,0)=PX AND ML%(X,1)=PY THEN 2020
- 2050 DN%(ML%(X,0),ML%(X,1))=X*10
- 2051 MZ%(X,0)=1
- 2052 NM=NM+1
- 2055 MZ%(X,1)=X*2+IN*2*LP
- 2090 NEXT:RETURN
- 3087 LINE (C-28/DI,B-41/DI)-(C+30/DI,B-55/DI):LINE (C+28/DI,B-58/DI)-(C+22/DI,B-56/DI):LINE -(C+22/DI,B-53/DI):LINE -(C+28/DI,B-52/DI):LINE -(C+34/DI,B-54/DI):LINE -(C+20/DI,B-50/DI):LINE -(C+26/DI,B-47/DI)
- 3088 LINE (C+10/DI,B-58/DI)-(C+10/DI,B-61/DI):LINE -(C+4/DI,B-58/DI):LINE (C-10/DI,B-58/DI)-(C-10/DI,B-61/DI):LINE -(C-4/DI,B-58/DI):LINE (C+40/DI,B-9/DI)-(C+50/DI,B-12/DI):LINE -(C+40/DI,B-7/DI)
- 3089 LINE (C-8/DI,B-25/DI)-(C+6/DI,B-7/DI):LINE -(C+28/DI,B-7/DI):LINE -(C+28/DI,B-9/DI):LINE -(C+20/DI,B-9/DI):LINE -(C+6/DI,B-25/DI):GOTO 490
- 4000 FOR MM=1 TO 10:IF MZ%(MM,0)=0 THEN 4999
- 4010 RA=SQR((PX-ML%(MM,0))^2+(PY-ML%(MM,1))^2)
- 4011 IF MZ%(MM,1)4020 IF RA<1.3 THEN 4500
- 4025 IF MM=8 AND RA<3 THEN 4999
- 4030 X1=SGN(PX-ML%(MM,0)):Y1=SGN(PY-ML%(MM,1))
- 4031 IF MZ%(MM,1)4035 IF Y1=0 THEN 4045
- 4040 D=DN%(ML%(MM,0),ML%(MM,1)+Y1):IF D=1 OR D>9 OR D=2 THEN 4045
- 4042 X1=0:GOTO 4050
- 4045 Y1=0:IF X1=0 THEN 4050
- 4046 D=DN%(ML%(MM,0)+X1,ML%(MM,1)):IF D=1 OR D>9 OR D=2 THEN X1=0:GOTO 4081
- 4050 DN%(ML%(MM,0),ML%(MM,1))=DN%(ML%(MM,0),ML%(MM,1))-10*MM
- 4055 IF ML%(MM,0)+X1=PX AND ML%(MM,1)+Y1=PY THEN 4999
- 4060 ML%(MM,0)=ML%(MM,0)+X1:ML%(MM,1)=ML%(MM,1)+Y1
- 4080 DN%(ML%(MM,0),ML%(MM,1))=DN%(ML%(MM,0),ML%(MM,1))+10*MM
- 4081 IF X1<>0 OR Y1<>0 THEN 4999
- 4082 IF MZ%(MM,1)4083 IF MZ%(MM,1)4499 GOTO 4999
- 4500 IF MM=2 OR MM=7 THEN 4600
- 4509 LOCATE 20,1:PRINT "YOU ARE BEING ATTACKED":PRINT "BY A ";M$(MM)
- 4510 IF RND*20-SGN(PW(3))-C(3)+MM+IN<0 THEN PRINT "MISSED":GOTO 4525
- 4520 PRINT "HIT":C(0)=C(0)-INT(RND*MM+IN)
- 4525 IF PA=1 THEN PRINT "-CR- TO CONT. ";:Q$=INPUT$(1) ELSE GOSUB 60890
- 4530 GOTO 4999
- 4600 IF RND<.5 THEN 4509
- 4610 IF MM=7 THEN PW(0)=INT(PW(0)/2):PRINT "A GREMLIN STOLE SOME FOOD":GOTO 4525
- 4620 ZZ=INT(RND*6):IF PW(ZZ)<1 THEN 4620
- 4630 PRINT "A THIEF STOLE A ";W$(ZZ):PW(ZZ)=PW(ZZ)-1:GOTO 4525
- 4999 NEXT:RETURN
- 6000 PRINT:PRINT:PRINT " WE MOURN THE PASSING OF"
- 6005 IF LEN(PN$)>22 THEN PN$=""
- 6010 IF PN$="" THEN PN$="THE PEASANT"
- 6020 PN$=PN$+" AND HIS COMPUTER"
- 6030 LOCATE ,20-INT(LEN(PN$)/2):PRINT PN$
- 6035 PRINT " TO INVOKE A MIRACLE OF RESURRECTION"
- 6040 PRINT " ";
- 6050 IF INKEY$=CHR$(27) THEN 1
- 6060 GOTO 6050
- 7000 SCREEN 0:CLS
- 7010 IF PN$<>"" THEN 7500
- 7020 PRINT:PRINT:PRINT " WELCOME PEASANT INTO THE HALLS OF":PRINT "THE MIGHTY LORD BRITISH. HEREIN THOU MAYCHOOSE TO DARE BATTLE WITH THE EVIL":PRINT "CREATURES OF THE DEPTHS, FOR GREAT":PRINT "REWARD!"
- 7030 PRINT:PRINT "WHAT IS THY NAME PEASANT ";:INPUT PN$
- 7040 PRINT "DOEST THOU WISH FOR GRAND ADVENTURE ? ";:Q$=INPUT$(1):IF Q$<>"Y" THEN PRINT:PRINT "THEN LEAVE AND BEGONE!":PN$="":PRINT:PRINT " PRESS -SPACE TO CONT.";:Q$=INPUT$(1):GOTO 1090
- 7045 PRINT
- 7050 PRINT:PRINT "GOOD! THOU SHALT TRY TO BECOME A":PRINT "KNIGHT!!!":PRINT:PRINT "THY FIRST TASK IS TO GO INTO THE":PRINT "DUNGEONS AND TO RETURN ONLY AFTER":PRINT "KILLING A(N) ";:TA=INT(C(4)/3):PRINT M$(TA)
- 7060 PRINT:PRINT " GO NOW UPON THIS QUEST, AND MAY":PRINT "LADY LUCK BE FAIR UNTO YOU.....":PRINT ".....ALSO I, BRITISH, HAVE INCREASED":PRINT "EACH OF THY ATTRIBUTES BY ONE!"
- 7070 PRINT:PRINT " PRESS -SPACE- TO CONT.";:Q$=INPUT$(1):FOR X=0 TO 5:C(X)=C(X)+1:NEXT:CLS:GOTO 1090
- 7500 IF TA>0 THEN PRINT:PRINT:PRINT PN$;" WHY HAST THOU RETURNED?":PRINT "THOU MUST KILL A(N) ";M$(TA):PRINT "GO NOW AND COMPLETE THY QUEST!":PRINT:PRINT " PRESS -SPACE- TO CONT.";:Q$=INPUT$(1):CLS:GOTO 1090
- 7510 PRINT:PRINT:PRINT:PRINT "AAHH!!......";PN$:PRINT:PRINT "THOU HAST ACOMPLISHED THY QUEST!":IF ABS(TA)=10 THEN 7900
- 7520 PRINT "UNFORTUNATELY, THIS IS NOT ENOUGH TO":PRINT "BECOME A KNIGHT.":TA=ABS(TA)+1:PRINT:PRINT "NOW THOU MUST KILL A(N) ";M$(TASK)
- 7530 GOTO 7060
- 7900 SCREEN 0:CLS:PRINT:PRINT:PRINT:PN$="LORD "+PN$:PRINT " ";PN$;","
- 7910 PRINT " THOU HAST PROVED THYSELF WORTHY":PRINT "OF KNIGHTHOOD, CONTINUE PLAY IF THOU":PRINT "DOTH WISH, BUT THOU HAST ACOMPLISHED":PRINT "THE MAIN OBJECTIVE OF THIS GAME..."
- 7920 IF LP=10 THEN 7950
- 7930 PRINT:PRINT " NOW MAYBE THOU ART FOOLHEARTY":PRINT "ENOUGH TO TRY DIFFICULTY LEVEL ";LP+1
- 7940 GOTO 7070
- 7950 PRINT:PRINT "...CALL CALIFORNIA PACIFIC COMPUTER":PRINT "AT (415)-569-9126 TO REPORT THIS":PRINT "AMAZING FEAT!"
- 7990 GOTO 7070
- 50000 REM TEST MONSTERS (BY NANOCHESS)
- 50002 MC=1
- 50003 SCREEN 2,1:SCREEN 0
- 50004 SCREEN 1
- 50005 C=160:B=120:DI=1
- 50010 EN=1:GOSUB 270
- 50020 A$=INPUT$(1)
- 50025 MC=MC+1:IF MC<11 THEN 50003
- 50030 SCREEN 2,1:SCREEN 0
- 50040 END
- 60000 SCREEN 1:SCREEN 0:CLS:LOCATE 5:INPUT "TYPE THY LUCKY NUMBER.....";Q$:LN=VAL(Q$)
- 60005 LOCATE 7:INPUT "LEVEL OF PLAY(1-10)......";Q$:LP=INT(VAL(Q$))
- 60006 IF LP<1 OR LP>10 THEN 60005
- 60010 RANDOMIZE ABS(LN)
- 60020 DATA "HIT POINTS.....","STRENGTH.......","DEXTERITY......","STAMINA........","WISDOM.........","GOLD..........."
- 60025 DIM PW(5)
- 60030 DIM C$(5):FOR X=0 TO 5:READ C$(X):NEXT
- 60040 DIM C(5)
- 60041 DIM M$(10),ML%(10,1),MZ%(10,1)
- 60042 DATA "SKELETON","THIEF","GIANT RAT","ORC","VIPER","CARRION CRAWLER","GREMLIN","MIMIC","DAEMON","BALROG"
- 60043 FOR X=1 TO 10:READ M$(X):NEXT
- 60050 FOR X=0 TO 5:C(X)=INT(SQR(RND)*21+4):NEXT X
- 60060 CLS:LOCATE 8:FOR X=0 TO 5:PRINT C$(X);C(X):NEXT:PRINT:PRINT"SHALT THOU PLAY WITH THESE QUALITIES?":LOCATE ,20:LINE INPUT Q$:IF Q$<>"Y" THEN 60050
- 60061 LOCATE 15:PRINT:PRINT "AND SHALT THOU BE A FIGHTER OR A MAGE?":LOCATE ,20:LINE INPUT PT$
- 60062 IF PT$="M" OR PT$="F" THEN 60070
- 60063 GOTO 60061
- 60070 DIM W$(5):DATA "FOOD","RAPIER","AXE","SHIELD","BOW AND ARROWS","MAGIC AMULET":FOR X=0 TO 5:READ W$(X):NEXT
- 60075 GOSUB 60080:GOSUB 60200:RETURN
- 60080 SCREEN 0:CLS:PRINT:PRINT:PRINT " STAT'S WEAPONS":PRINT:FOR X=0 TO 5:PRINT C$(X);C(X);TAB(24);"0-";W$(X):NEXT
- 60081 LOCATE 11,18:PRINT "Q-QUIT"
- 60085 FOR Z=0 TO 5:LOCATE 5+Z,25-LEN(STR$(PW(Z))):PRINT PW(Z):NEXT
- 60090 LOCATE 17,5:PRINT "PRICE";:LOCATE ,15:PRINT "DAMAGE";:LOCATE ,25:PRINT "ITEM"
- 60100 FOR X=0 TO 5:LOCATE 19+X,25:PRINT W$(X);:NEXT X
- 60110 LOCATE 19,5:PRINT "1 FOR 10";:LOCATE,15:PRINT "N/A":LOCATE 20,5:PRINT "8";:LOCATE,15:PRINT "1-10":LOCATE 21,5:PRINT "5";:LOCATE,15:PRINT "1-5"
- 60120 LOCATE 22,5:PRINT "6";:LOCATE,15:PRINT "1":LOCATE 23,5:PRINT "3";:LOCATE,15:PRINT "1-4":LOCATE 24,5:PRINT "15";:LOCATE,15:PRINT "?????";:LOCATE 1,1
- 60130 RETURN
- 60200 LOCATE 13,1:PRINT"WELCOME TO THE ADVENTURE SHOP"
- 60210 GOSUB 60890:LOCATE 14,1:PRINT STRING$(120," "):LOCATE 14,1
- 60211 PRINT "WHICH ITEM SHALT THOU BUY ";:Q$=INPUT$(1):IF Q$="Q" THEN PRINT:PRINT "BYE":GOSUB 60890:SCREEN 0:CLS:RETURN
- 60215 Z=-1
- 60220 IF Q$="F" THEN PRINT "FOOD":Z=0:P=1
- 60221 IF Q$="R" THEN PRINT "RAPIER":Z=1:P=8
- 60222 IF Q$="A" THEN PRINT "AXE":Z=2:P=5
- 60223 IF Q$="S" THEN PRINT "SHIELD":Z=3:P=6
- 60224 IF Q$="B" THEN PRINT "BOW":Z=4:P=3
- 60225 IF Q$="M" THEN PRINT "AMULET":Z=5:P=15
- 60226 IF Z=-1 THEN PRINT Q$:PRINT "I'M SORRY WE DON'T HAVE THAT.":GOTO 60210
- 60227 IF Q$="R" AND PT$="M" THEN PRINT "I'M SORRY MAGES":PRINT "CAN'T USE THAT!":GOTO 60210
- 60228 IF Q$="B" AND PT$="M" THEN PRINT "I'M SORRY MAGES":PRINT "CAN'T USE THAT!":GOTO 60210
- 60230 IF C(5)-P<0 THEN PRINT "M'LORD THOU CAN NOT AFFORD THAT ITEM.":GOTO 60210
- 60235 IF Z=0 THEN PW(Z)=PW(Z)+9
- 60236 PW(Z)=PW(Z)+1:C(5)=C(5)-P
- 60237 LOCATE 10,16:PRINT C(5);" "
- 60240 LOCATE 5+Z,25-LEN(STR$(PW(Z))):PRINT PW(Z);
- 60250 GOTO 60210
- 60868 CY=CSRLIN:CX=POS(0):IF CX>=39 THEN RETURN ELSE PRINT STRING$(39-CX," ");:LOCATE ,CX:RETURN
- 60890 X=TIMER
- 60891 IF TIMER-X<0.5 THEN 60891
- 60893 RETURN
- 60900 SCREEN 1:LINE (0,0)-(319,159),0,BF:RETURN
- et en MSX Basic :
- 0 ON ERROR GOTO 4
- 1 REM AKALABETH, PORT TO MSX BASIC BY NANOCHESS, FEB/05/2019
- 4 COLOR 15,1,1:CLS:KEY OFF
- 7 CLEAR:GOSUB 60000
- 8 ZZ=RND(-ABS(LN))
- 9 LEVEL = 0
- 10 SCREEN 0:WIDTH 40:GO=0:LOCATE ,11:PRINT " WELCOME TO AKALABETH, WORLD OF DOOM!"
- 20 DIM DN%(10,10),TE%(20,20),XX%(10),YY%(10),PE%(10,3),LD%(10,5),CD%(10,3),FT%(10,5),LA%(10,3)
- 30 FOR X=0 TO 20:TE%(X,0)=1:TE%(0,X)=1:TE%(X,20)=1:TE%(20,X)=1:NEXT
- 35 LOCATE ,22:PRINT " (PLEASE WAIT)";
- 40 FOR X=1 TO 19:FOR Y=1 TO 19:TE%(X,Y)=INT(RND(1)^5*4.5)
- 41 IF TE%(X,Y)=3 AND RND(1)>.5 THEN TE%(X,Y)=0
- 42 NEXT:PRINT ".";:NEXT
- 50 TE%(INT(RND(1)*19+1),INT(RND(1)*19+1))=5:TX=INT(RND(1)*19+1):TY=INT(RND(1)*19+1):TE%(TX,TY)=3
- 51 XX%(0)=127:YY%(0)=79
- 52 FOR X=2 TO 20 STEP 2:XX%(X/2)=INT(ATN(1/X)/ATN(1)*128+.5):YY%(X/2)=INT(XX%(X/2)*4/7)
- 53 PE%(X/2,0)=127-XX%(X/2):PE%(X/2,1)=127+XX%(X/2):PE%(X/2,2)=79-YY%(X/2):PE%(X/2,3)=79+YY%(X/2):NEXT
- 54 PE%(0,0)=0:PE%(0,1)=255:PE%(0,2)=0:PE%(0,3)=159
- 55 FOR X=1 TO 10:CD%(X,0)=127-XX%(X)/3:CD%(X,1)=127+XX%(X)/3:CD%(X,2)=79-YY%(X)*.7:CD%(X,3)=79+YY%(X):NEXT:PRINT ".";
- 56 FOR X=0 TO 9:LD%(X,0)=(PE%(X,0)*2+PE%(X+1,0))/3:LD%(X,1)=(PE%(X,0)+2*PE%(X+1,0))/3:W=LD%(X,0)-PE%(X,0)
- 57 LD%(X,2)=PE%(X,2)+W*4/7:LD%(X,3)=PE%(X,2)+2*W*4/7:LD%(X,4)=(PE%(X,3)*2+PE%(X+1,3))/3:LD%(X,5)=(PE%(X,3)+2*PE%(X+1,3))/3
- 58 LD%(X,2)=LD%(X,4)-(LD%(X,4)-LD%(X,2))*.8:LD%(X,3)=LD%(X,5)-(LD%(X,5)-LD%(X,3))*.8:IF LD%(X,3)=LD%(X,4) THEN LD%(X,3)=LD%(X,3)-1
- 59 NEXT
- 60 FOR X=0 TO 9:FT%(X,0)=127-XX%(X)/3:FT%(X,1)=127+XX%(X)/3:FT%(X,2)=127-XX%(X+1)/3:FT%(X,3)=127+XX%(X+1)/3
- 61 FT%(X,4)=79+(YY%(X)*2+YY%(X+1))/3:FT%(X,5)=79+(YY%(X)+2*YY%(X+1))/3:NEXT
- 62 FOR X=0 TO 9:LA%(X,0)=(FT%(X,0)*2+FT%(X,1))/3:LA%(X,1)=(FT%(X,0)+2*FT%(X,1))/3:LA%(X,3)=FT%(X,4):LA%(X,2)=159-LA%(X,3):NEXT
- 68 COLOR 15
- 70 GOSUB 100:GOTO 1000
- 90 FOR X=0 TO 9:FOR Y=0 TO 5:PRINT LD%(X,Y);" ";:NEXT:PRINT:NEXT:INPUT Q$
- 100 GOSUB 60900:FOR Y=-1 TO 1:FOR X=-1 TO 1
- 105 LINE (126,75)-(130,75):LINE (128,73)-(128,77)
- 110 ZZ=TE%(TX+X,TY+Y):X1=53+(X+1)*50:Y1=(Y+1)*50
- 120 IF ZZ=2 THEN LINE (X1+20,Y1+20)-(X1+30,Y1+20):LINE -(X1+30,Y1+30):LINE -(X1+20,Y1+30):LINE -(X1+20,Y1+20)
- 130 IF ZZ=3 THEN LINE (X1+10,Y1+10)-(X1+20,Y1+10):LINE -(X1+20,Y1+40):LINE -(X1+10,Y1+40):LINE -(X1+10,Y1+30):LINE -(X1+40,Y1+30)
- 135 IF ZZ=3 THEN LINE -(X1+40,Y1+40):LINE -(X1+30,Y1+40):LINE -(X1+30,Y1+10):LINE -(X1+40,Y1+10):LINE -(X1+40,Y1+20):LINE -(X1+10,Y1+20):LINE -(X1+10,Y1+10)
- 140 IF ZZ=4 THEN LINE (X1+20,Y1+20)-(X1+30,Y1+30):LINE -(X1+20,Y1+30):LINE -(X1+30,Y1+20)
- 150 IF ZZ=5 THEN LINE (X1,Y1)-(X1+50,Y1):LINE -(X1+50,Y1+50):LINE -(X1,Y1+50):LINE -(X1,Y1):LINE (X1+10,Y1+10)-(X1+10,Y1+40)
- 155 IF ZZ=5 THEN LINE -(X1+40,Y1+40):LINE -(X1+40,Y1+10):LINE -(X1+10,Y1+10):LINE -(X1+40,Y1+40):LINE (X1+10,Y1+40)-(X1+40,Y1+10)
- 160 IF ZZ=1 THEN LINE (X1+10,Y1+50)-(X1+10,Y1+40):LINE -(X1+20,Y1+30):LINE -(X1+40,Y1+30):LINE -(X1+40,Y1+50):LINE (X1,Y1+10)-(X1+10,Y1+10):LINE (X1+50,Y1+10)-(X1+40,Y1+10):LINE (X1,Y1+40)-(X1+10,Y1+40):LINE (X1+40,Y1+40)-(X1+50,Y1+40)
- 170 IF ZZ=1 THEN LINE (X1+10,Y1)-(X1+10,Y1+20):LINE -(X1+20,Y1+20):LINE -(X1+20,Y1+30):LINE -(X1+30,Y1+30):LINE -(X1+30,Y1+10):LINE -(X1+40,Y1+10):LINE -(X1+40,Y1)
- 190 NEXT:NEXT:RETURN
- 200 GOSUB 60900:DI=0:COLOR 15
- 202 CE=DN%(PX+DX*DI,PY+DY*DI):LE=DN%(PX+DX*DI+DY,PY+DY*DI-DX):RI=DN%(PX+DX*DI-DY,PY+DY*DI+DX)
- 204 L1=PE%(DI,0):R1=PE%(DI,1):T1=PE%(DI,2):B1=PE%(DI,3):L2=PE%(DI+1,0):R2=PE%(DI+1,1):T2=PE%(DI+1,2):B2=PE%(DI+1,3)
- 205 CE=INT(CE):LE=INT(LE):RI=INT(RI)
- 206 MC=INT(CE/10):CE=CE-MC*10:LE=INT((LE/10-INT(LE/10))*10):RI=INT((RI/10-INT(RI/10))*10)
- 208 IF DI=0 THEN 216
- 210 IF CE=1 OR CE=3 OR CE=4 THEN LINE (L1,T1)-(R1,T1):LINE -(R1,B1):LINE -(L1,B1):LINE -(L1,T1)
- 212 IF CE=1 OR CE=3 THEN EN=1:GOTO 260
- 214 IF CE=4 THEN LINE (CD%(DI,0),CD%(DI,3))-(CD%(DI,0),CD%(DI,2)):LINE -(CD%(DI,1),CD%(DI,2)):LINE -(CD%(DI,1),CD%(DI,3)):EN=1:GOTO 260
- 216 IF LE=1 OR LE=3 OR LE=4 THEN LINE (L1,T1)-(L2,T2):LINE (L1,B1)-(L2,B2)
- 218 IF RI=1 OR RI=3 OR RI=4 THEN LINE (R1,T1)-(R2,T2):LINE (R1,B1)-(R2,B2)
- 220 IF LE=4 AND DI>0 THEN LINE (LD%(DI,0),LD%(DI,4))-(LD%(DI,0),LD%(DI,2)):LINE -(LD%(DI,1),LD%(DI,3)):LINE -(LD%(DI,1),LD%(DI,5))
- 222 IF LE=4 AND DI=0 THEN LINE (0,LD%(DI,2)-3)-(LD%(DI,1),LD%(DI,3)):LINE -(LD%(DI,1),LD%(DI,5))
- 224 IF RI=4 AND DI>0 THEN LINE (255-LD%(DI,0),LD%(DI,4))-(255-LD%(DI,0),LD%(DI,2)):LINE -(255-LD%(DI,1),LD%(DI,3)):LINE -(255-LD%(DI,1),LD%(DI,5))
- 226 IF RI=4 AND DI=0 THEN LINE (255,LD%(DI,2)-3)-(255-LD%(DI,1),LD%(DI,3)):LINE -(255-LD%(DI,1),LD%(DI,5))
- 228 IF LE=3 OR LE=1 OR LE=4 THEN 234
- 230 IF DI<>0 THEN LINE (L1,T1)-(L1,B1)
- 232 LINE (L1,T2)-(L2,T2):LINE -(L2,B2):LINE -(L1,B2)
- 234 IF RI=3 OR RI=1 OR RI=4 THEN 240
- 236 IF DI<>0 THEN LINE (R1,T1)-(R1,B1)
- 238 LINE (R1,T2)-(R2,T2):LINE -(R2,B2):LINE -(R1,B2)
- 240 IF CE=7 OR CE=9 THEN LINE (FT%(DI,0),FT%(DI,4))-(FT%(DI,2),FT%(DI,5)):LINE -(FT%(DI,3),FT%(DI,5)):LINE -(FT%(DI,1),FT%(DI,4)):LINE -(FT%(DI,0),FT%(DI,4))
- 242 IF CE=8 THEN LINE (FT%(DI,0),158-FT%(DI,4))-(FT%(DI,2),158-FT%(DI,5)):LINE -(FT%(DI,3),158-FT%(DI,5)):LINE -(FT%(DI,1),158-FT%(DI,4)):LINE -(FT%(DI,0),158-FT%(DI,4))
- 244 IF CE=7 OR CE=8 THEN BA=LA%(DI,3):TP=LA%(DI,2):LX=LA%(DI,0):RX=LA%(DI,1):LINE (LX,BA)-(LX,TP):LINE (RX,TP)-(RX,BA)
- 246 IF CE=7 OR CE=8 THEN Y1=(BA*4+TP)/5:Y2=(BA*3+TP*2)/5:Y3=(BA*2+TP*3)/5:Y4=(BA+TP*4)/5:LINE (LX,Y1)-(RX,Y1):LINE (LX,Y2)-(RX,Y2):LINE (LX,Y3)-(RX,Y3):LINE (LX,Y4)-(RX,Y4)
- 248 IF DI>0 AND CE=5 THEN LINE (127-10/DI,PE%(DI,3))-(127-10/DI,PE%(DI,3)-10/DI):LINE -(127+10/DI,PE%(DI,3)-10/DI):LINE -(127+10/DI,PE%(DI,3)):LINE -(127-10/DI,PE%(DI,3))
- 249 IF CE=5 AND DI>0 THEN COLOR 7:PRESET (0,0):PRINT #1,"CHEST!":COLOR 15
- 250 IF DI>0 AND CE=5 THEN LINE (127-10/DI,PE%(DI,3)-10/DI)-(127-5/DI,PE%(DI,3)-15/DI):LINE -(127+15/DI,PE%(DI,3)-15/DI):LINE -(127+15/DI,PE%(DI,3)-5/DI):LINE -(127+10/DI,PE%(DI,3))
- 252 IF DI>0 AND CE=5 THEN LINE (127+10/DI,PE%(DI,3)-10/DI)-(127+15/DI,PE%(DI,3)-15/DI)
- 260 IF MC<1 THEN 490
- 265 B=79+YY%(DI):C=127
- 266 COLOR 7:IF MC=8 THEN PRESET (0,0):PRINT #1,"CHEST!";:GOSUB 60868:PRINT:COLOR 15:GOTO 269
- 267 PRESET (0,8):PRINT #1,M$(MC):COLOR 15
- 269 IF DI=0 THEN 490
- 270 ON MC GOTO 300,310,320,330,340,350,360,370,380,390
- 280 GOTO 490
- 300 LINE (C-23/DI,B)-(C-15/DI,B):LINE -(C-15/DI,B-15/DI):LINE -(C-8/DI,B-30/DI):LINE -(C+8/DI,B-30/DI):LINE -(C+15/DI,B-15/DI):LINE -(C+15/DI,B):LINE -(C+23/DI,B)
- 301 LINE (C,B-26/DI)-(C,B-65/DI):LINE (C-2/DI+.5,B-38/DI)-(C+2/DI+.5,B-38/DI):LINE (C-3/DI+.5,B-45/DI)-(C+3/DI+.5,B-45/DI):LINE (C-5/DI+.5,B-53/DI)-(C+5/DI+.5,B-53/DI)
- 302 LINE (C-23/DI,B-56/DI)-(C-30/DI,B-53/DI):LINE -(C-23/DI,B-45/DI):LINE -(C-23/DI,B-53/DI):LINE -(C-8/DI,B-38/DI)
- 303 LINE (C-15/DI,B-45/DI)-(C-8/DI,B-60/DI):LINE -(C+8/DI,B-60/DI):LINE -(C+15/DI,B-45/DI):LINE (C+15/DI,B-42/DI)-(C+15/DI,B-57/DI):LINE (C+12/DI,B-45/DI)-(C+20/DI,B-45/DI)
- 304 LINE (C,B-75/DI)-(C-5/DI+.5,B-80/DI):LINE -(C-8/DI,B-75/DI):LINE -(C-5/DI+.5,B-65/DI):LINE -(C+5/DI+.5,B-65/DI):LINE -(C+5/DI+.5,B-68/DI):LINE -(C-5/DI+.5,B-68/DI):LINE -(C-5/DI+.5,B-65/DI)
- 305 LINE -(C+5/DI+.5,B-65/DI):LINE -(C+8/DI,B-75/DI):LINE -(C+5/DI+.5,B-80/DI):LINE -(C-5/DI+.5,B-80/DI):PSET (C-5/DI+.5,B-72/DI):PSET (C+5/DI+.5,B-72/DI)
- 309 GOTO 490
- 310 LINE (C,B-56/DI)-(C,B-8/DI):LINE -(C+10/DI,B):LINE -(C+30/DI,B):LINE -(C+30/DI,B-45/DI):LINE -(C+10/DI,B-64/DI):LINE -(C,B-56/DI)
- 311 LINE -(C-10/DI,B-64/DI):LINE -(C-30/DI,B-45/DI):LINE -(C-30/DI,B):LINE -(C-10/DI,B):LINE -(C,B-8/DI)
- 312 LINE (C-10/DI,B-64/DI)-(C-10/DI,B-75/DI):LINE -(C,B-83/DI):LINE -(C+10/DI,B-75/DI):LINE -(C,B-79/DI):LINE -(C-10/DI,B-75/DI):LINE -(C,B-60/DI):LINE -(C+10/DI,B-75/DI):LINE -(C+10/DI,B-64/DI)
- 319 GOTO 490
- 320 LINE (C+5/DI,B-30/DI)-(C,B-25/DI):LINE -(C-5/DI,B-30/DI):LINE -(C-15/DI,B-5/DI):LINE -(C-10/DI,B):LINE -(C+10/DI,B):LINE -(C+15/DI,B-5/DI)
- 321 LINE -(C+20/DI,B-5/DI):LINE -(C+10/DI,B):LINE -(C+15/DI,B-5/DI):LINE -(C+5/DI,B-30/DI):LINE -(C+10/DI,B-40/DI):LINE -(C+3/DI+.5,B-35/DI):LINE -(C-3/DI+.5,B-35/DI):LINE -(C-10/DI,B-40/DI):LINE -(C-5/DI,B-30/DI)
- 322 LINE (C-5/DI,B-33/DI)-(C-3/DI+.5,B-30/DI):LINE (C+5/DI,B-33/DI)-(C+3/DI+.5,B-30/DI):LINE (C-5/DI,B-20/DI)-(C-5/DI,B-15/DI)
- 323 LINE (C+5/DI,B-20/DI)-(C+5/DI,B-15/DI):LINE (C-7+DI,B-20/DI)-(C-7/DI,B-15/DI):LINE (C+7/DI,B-20/DI)-(C+7/DI,B-15/DI)
- 329 GOTO 490
- 330 LINE (C,B)-(C-15/DI,B):LINE -(C-8/DI,B-8/DI):LINE -(C-8/DI,B-15/DI):LINE -(C-15/DI,B-23/DI):LINE -(C-15/DI,B-15/DI):LINE -(C-23/DI,B-23/DI)
- 331 LINE -(C-23/DI,B-45/DI):LINE -(C-15/DI,B-53/DI):LINE -(C-8/DI,B-53/DI):LINE -(C-15/DI,B-68/DI):LINE -(C-8/DI,B-75/DI):LINE -(C,B-75/DI)
- 332 LINE (C,B)-(C+15/DI,B):LINE -(C+8/DI,B-8/DI):LINE -(C+8/DI,B-15/DI):LINE -(C+15/DI,B-23/DI):LINE -(C+15/DI,B-15/DI):LINE -(C+23/DI,B-23/DI)
- 333 LINE -(C+23/DI,B-45/DI):LINE -(C+15/DI,B-53/DI):LINE -(C+8/DI,B-53/DI):LINE -(C+15/DI,B-68/DI):LINE -(C+8/DI,B-75/DI):LINE -(C,B-75/DI)
- 334 LINE (C-15/DI,B-68/DI)-(C+15/DI,B-68/DI):LINE (C-8/DI,B-53/DI)-(C+8/DI,B-53/DI):LINE (C-23/DI,B-15/DI)-(C+8/DI,B-45/DI)
- 335 LINE (C-8/DI,B-68/DI)-(C,B-60/DI):LINE -(C+8/DI,B-68/DI):LINE -(C+8/DI,B-60/DI):LINE -(C-8/DI,B-60/DI):LINE -(C-8/DI,B-68/DI)
- 336 LINE (C,B-38/DI)-(C-8/DI,B-38/DI):LINE -(C+8/DI,B-53/DI):LINE -(C+8/DI,B-45/DI):LINE -(C+15/DI,B-45/DI):LINE -(C,B-30/DI):LINE -(C,B-38/DI)
- 339 GOTO 490
- 340 LINE (C-10/DI,B-15/DI)-(C-10/DI,B-30/DI):LINE -(C-15/DI,B-20/DI):LINE -(C-15/DI,B-15/DI):LINE -(C-15/DI,B):LINE -(C+15/DI,B):LINE -(C+15/DI,B-15/DI):LINE -(C-15/DI,B-15/DI)
- 341 LINE (C-15/DI,B-10/DI)-(C+15/DI,B-10/DI):LINE (C-15/DI,B-5/DI)-(C+15/DI,B-5/DI)
- 342 LINE (C,B-15/DI)-(C-5/DI,B-20/DI):LINE -(C-5/DI,B-35/DI):LINE -(C+5/DI,B-35/DI):LINE -(C+5/DI,B-20/DI):LINE -(C+10/DI,B-15/DI)
- 343 LINE (C-5/DI,B-20/DI)-(C+5/DI,B-20/DI):LINE (C-5/DI,B-25/DI)-(C+5/DI,B-25/DI):LINE (C-5/DI,B-30/DI)-(C+5/DI,B-30/DI)
- 344 LINE (C-10/DI,B-35/DI)-(C-10/DI,B-40/DI):LINE -(C-5/DI,B-45/DI):LINE -(C+5/DI,B-45/DI):LINE -(C+10/DI,B-40/DI):LINE -(C+10/DI,B-35/DI)
- 345 LINE (C-10/DI,B-40/DI)-(C,B-45/DI):LINE -(C+10/DI,B-40/DI)
- 346 LINE (C-5/DI,B-40/DI)-(C+5/DI,B-40/DI):LINE -(C+15/DI,B-30/DI):LINE -(C,B-40/DI):LINE -(C-15/DI,B-30/DI):LINE -(C-5/DI+.5,B-40/DI)
- 349 GOTO 490
- 350 LINE (C-20/DI,79-YY%(DI))-(C-20/DI,B-88/DI):LINE -(C-10/DI,B-83/DI):LINE -(C+10/DI,B-83/DI):LINE -(C+20/DI,B-88/DI):LINE -(C+20/DI,79-YY%(DI)):LINE -(C-20/DI,79-YY%(DI))
- 351 LINE (C-20/DI,B-88/DI)-(C-30/DI,B-83/DI):LINE -(C-30/DI,B-78/DI):LINE (C+20/DI,B-88/DI)-(C+30/DI,B-83/DI):LINE -(C+40/DI,B-83/DI)
- 352 LINE (C-15/DI,B-86/DI)-(C-20/DI,B-83/DI):LINE -(C-20/DI,B-78/DI):LINE -(C-30/DI,B-73/DI):LINE -(C-30/DI,B-68/DI):LINE -(C-20/DI,B-63/DI)
- 353 LINE (C-10/DI,B-83/DI)-(C-10/DI,B-58/DI):LINE -(C,B-50/DI):LINE (C+10/DI,B-83/DI)-(C+10/DI,B-78/DI):LINE -(C+20/DI,B-73/DI):LINE -(C+20/DI,B-40/DI)
- 354 LINE (C+15/DI,B-85/DI)-(C+20/DI,B-78/DI):LINE -(C+30/DI,B-76/DI):LINE -(C+30/DI,B-60/DI)
- 355 LINE (C,B-83/DI)-(C,B-73/DI):LINE -(C+10/DI,B-68/DI):LINE -(C+10/DI,B-63/DI):LINE -(C,B-58/DI)
- 359 GOTO 490
- 360 LINE (C+5/DI+.5,B-10/DI)-(C-5/DI+.5,B-10/DI):LINE -(C,B-15/DI):LINE -(C+10/DI,B-20/DI):LINE -(C+5/DI+.5,B-15/DI):LINE -(C+5/DI+.5,B-10/DI)
- 361 LINE -(C+7/DI+.5,B-6/DI):LINE -(C+5/DI+.5,B-3/DI):LINE -(C-5/DI+.5,B-3/DI):LINE -(C-7/DI+.5,B-6/DI):LINE -(C-5/DI+.5,B-10/DI)
- 362 LINE (C+2/DI+.5,B-3/DI)-(C+5/DI+.5,B):LINE -(C+8/DI,B):LINE (C-2/DI+.5,B-3/DI)-(C-5/DI+.5,B):LINE -(C-8/DI,B):PSET (C+3/DI+.5,B-8/DI):PSET (C-3/DI+.5,B-8/DI):LINE (C+3/DI+.5,B-5/DI)-(C-3/DI+.5,B-5/DI)
- 363 GOTO 490
- 370 LINE (127-10/DI,PE%(DI,3))-(127-10/DI,PE%(DI,3)-10/DI):LINE -(127+10/DI,PE%(DI,3)-10/DI):LINE -(127+10/DI,PE%(DI,3)):LINE -(127-10/DI,PE%(DI,3))
- 371 LINE (127-10/DI,PE%(DI,3)-10/DI)-(127-5/DI,PE%(DI,3)-15/DI):LINE -(127+15/DI,PE%(DI,3)-15/DI):LINE -(127+15/DI,PE%(DI,3)-5/DI):LINE -(127+10/DI,PE%(DI,3))
- 372 LINE (127+10/DI,PE%(DI,3)-10/DI)-(127+15/DI,PE%(DI,3)-15/DI)
- 373 GOTO 490
- 380 LINE (C-14/DI,B-46/DI)-(C-12/DI,B-37/DI):LINE -(C-20/DI,B-32/DI):LINE -(C-30/DI,B-32/DI):LINE -(C-22/DI,B-24/DI):LINE -(C-40/DI,B-17/DI):LINE -(C-40/DI,B-7/DI):LINE -(C-38/DI,B-5/DI):LINE -(C-40/DI,B-3/DI):LINE -(C-40/DI,B)
- 381 LINE -(C-36/DI,B):LINE -(C-34/DI,B-2/DI):LINE -(C-32/DI,B):LINE -(C-28/DI,B):LINE -(C-28/DI,B-3/DI):LINE -(C-30/DI,B-5/DI):LINE -(C-28/DI,B-7/DI):LINE -(C-28/DI,B-15/DI):LINE -(C,B-27/DI)
- 382 LINE (C+14/DI,B-46/DI)-(C+12/DI,B-37/DI):LINE -(C+20/DI,B-32/DI):LINE -(C+30/DI,B-32/DI):LINE -(C+22/DI,B-24/DI):LINE -(C+40/DI,B-17/DI):LINE -(C+40/DI,B-7/DI):LINE -(C+38/DI,B-5/DI):LINE -(C+40/DI,B-3/DI):LINE -(C+40/DI,B)
- 383 LINE -(C+36/DI,B):LINE -(C+34/DI,B-2/DI):LINE -(C+32/DI,B):LINE -(C+28/DI,B):LINE -(C+28/DI,B-3/DI):LINE -(C+30/DI,B-5/DI):LINE -(C+28/DI,B-7/DI):LINE -(C+28/DI,B-15/DI):LINE -(C,B-27/DI)
- 384 LINE (C+6/DI,B-48/DI)-(C+38/DI,B-41/DI):LINE -(C+40/DI,B-42/DI):LINE -(C+18/DI,B-56/DI):LINE -(C+12/DI,B-56/DI):LINE -(C+10/DI,B-57/DI):LINE -(C+8/DI,B-56/DI):LINE -(C-8/DI,B-56/DI):LINE -(C-10/DI,B-58/DI):LINE -(C+14/DI,B-58/DI)
- 385 LINE -(C+16/DI,B-59/DI)
- 386 LINE -(C+8/DI,B-63/DI):LINE -(C+6/DI,B-63/DI):LINE -(C+2/DI+.5,B-70/DI):LINE -(C+2/DI+.5,B-63/DI):LINE -(C-2/DI+.5,B-63/DI):LINE -(C-2/DI+.5,B-70/DI):LINE -(C-6/DI,B-63/DI):LINE -(C-8/DI,B-63/DI):LINE -(C-16/DI,B-59/DI):LINE -(C-14/DI,B-58/DI)
- 387 LINE -(C+10/DI,B-57/DI):LINE -(C-12/DI,B-56/DI):LINE -(C-18/DI,B-56/DI):LINE -(C-36/DI,B-47/DI):LINE -(C-36/DI,B-39/DI):LINE -(C-28/DI,B-41/DI):LINE -(C-28/DI,B-46/DI):LINE -(C-20/DI,B-50/DI):LINE -(C-18/DI,B-50/DI):LINE -(C-14/DI,B-46/DI)
- 388 GOTO 3087
- 390 LINE (C+6/DI,B-60/DI)-(C+30/DI,B-90/DI):LINE -(C+60/DI,B-30/DI):LINE -(C+60/DI,B-10/DI):LINE-(C+30/DI,B-40/DI):LINE -(C+15/DI,B-40/DI)
- 391 LINE (C-6/DI,B-60/DI)-(C-30/DI,B-90/DI):LINE -(C-60/DI,B-30/DI):LINE -(C-60/DI,B-10/DI):LINE -(C-30/DI,B-40/DI):LINE -(C-15/DI,B-40/DI)
- 392 LINE (C,B-25/DI)-(C+6/DI,B-25/DI):LINE -(C+10/DI,B-20/DI):LINE -(C+12/DI,B-10/DI):LINE -(C+10/DI,B-6/DI):LINE -(C+10/DI,B):LINE -(C+14/DI,B):LINE-(C+15/DI,B-5/DI):LINE -(C+16/DI,B):LINE -(C+20/DI,B)
- 393 LINE -(C+20/DI,B-6/DI):LINE -(C+18/DI,B-10/DI):LINE -(C+18/DI,B-20/DI):LINE -(C+15/DI,B-30/DI):LINE -(C+15/DI,B-45/DI):LINE -(C+40/DI,B-60/DI):LINE -(C+40/DI,B-70/DI)
- 394 LINE -(C+10/DI,B-55/DI):LINE -(C+6/DI,B-60/DI):LINE -(C+10/DI,B-74/DI):LINE -(C+6/DI,B-80/DI):LINE -(C+4/DI+.5,B-80/DI):LINE -(C+3/DI+.5,B-82/DI):LINE -(C+2/DI+.5,B-80/DI):LINE -(C,B-80/DI)
- 395 LINE (C,B-25/DI)-(C-6/DI,B-25/DI):LINE -(C-10/DI,B-20/DI):LINE -(C-12/DI,B-10/DI):LINE -(C-10/DI,B-6/DI):LINE -(C-10/DI,B):LINE -(C-14/DI,B):LINE -(C-15/DI,B-5/DI):LINE -(C-16/DI,B):LINE -(C-20/DI,B)
- 396 LINE -(C-20/DI,B-6/DI):LINE -(C-18/DI,B-10/DI):LINE -(C-18/DI,B-20/DI):LINE -(C-15/DI,B-30/DI):LINE -(C-15/DI,B-45/DI):LINE -(C-40/DI,B-60/DI):LINE -(C-40/DI,B-70/DI)
- 397 LINE -(C-10/DI,B-55/DI):LINE -(C-6/DI,B-60/DI):LINE -(C-10/DI,B-74/DI):LINE -(C-6/DI,B-80/DI):LINE -(C-4/DI+.5,B-80/DI):LINE -(C-3/DI+.5,B-82/DI):LINE -(C-2/DI+.5,B-80/DI):LINE -(C,B-80/DI)
- 398 LINE (C-6/DI,B-25/DI)-(C,B-6/DI):LINE -(C+10/DI,B):LINE -(C+4/DI+.5,B-8/DI):LINE -(C+6/DI,B-25/DI):LINE (C-40/DI,B-64/DI)-(C-40/DI,B-90/DI):LINE -(C-52/DI,B-80/DI):LINE -(C-52/DI,B-40/DI)
- 399 LINE (C+40/DI,B-86/DI)-(C+38/DI,B-92/DI):LINE -(C+42/DI,B-92/DI):LINE -(C+40/DI,B-86/DI):LINE -(C+40/DI,B-50/DI)
- 400 LINE (C+4/DI+.5,B-70/DI)-(C+6/DI,B-74/DI):LINE (C-4/DI+.5,B-70/DI)-(C-6/DI,B-74/DI):LINE (C,B-64/DI)-(C,B-60/DI):GOTO 490
- 490 IF EN=1 THEN EN=0:RETURN
- 491 DI=DI+1:GOTO 202
- 500 ZZ=RND(-ABS(LN)-TX*10-TY*1000+IN*31.4)
- 501 FOR X=1 TO 9:FOR Y=1 TO 9:DN%(X,Y)=0:NEXT:NEXT
- 510 FOR X=0 TO 10:DN%(X,0)=1:DN%(X,10)=1:DN%(0,X)=1:DN%(10,X)=1:NEXT
- 520 FOR X=2 TO 8 STEP 2:FOR Y=1 TO 9:DN%(X,Y)=1:DN%(Y,X)=1:NEXT:NEXT
- 530 FOR X=2 TO 8 STEP 2:FOR Y=1 TO 9 STEP 2
- 540 IF RND(1)>.95 THEN DN%(X,Y)=2
- 541 IF RND(1)>.95 THEN DN%(Y,X)=2
- 542 IF RND(1)>.6 THEN DN%(Y,X)=3
- 543 IF RND(1)>.6 THEN DN%(X,Y)=3
- 544 IF RND(1)>.6 THEN DN%(X,Y)=4
- 545 IF RND(1)>.6 THEN DN%(Y,X)=4
- 546 IF RND(1)>.97 THEN DN%(Y,X)=9
- 547 IF RND(1)>.97 THEN DN%(X,Y)=9
- 548 IF RND(1)>.94 THEN DN%(X,Y)=5
- 549 IF RND(1)>.94 THEN DN%(Y,X)=5
- 568 NEXT:NEXT
- 569 DN%(2,1)=0:IF IN/2=INT(IN/2) THEN DN%(7,3)=7:DN%(3,7)=8
- 570 IF IN/2<>INT(IN/2) THEN DN%(7,3)=8:DN%(3,7)=7
- 580 IF IN=1 THEN DN%(1,1)=8:DN%(7,3)=0
- 585 GOSUB 2000
- 590 RETURN
- 1000 GOSUB 60910:PRESET (0,160):PRINT #1,"COMMAND? ";
- 1001 X$=INKEY$:IF X$="" THEN 1001
- 1003 X=ASC(X$)
- 1030 IF X=30 THEN ON SGN(IN)+1 GOTO 1100,1150
- 1040 IF X=28 THEN ON SGN(IN)+1 GOTO 1200,1250
- 1050 IF X=29 THEN ON SGN(IN)+1 GOTO 1300,1350
- 1060 IF X=31 THEN ON SGN(IN)+1 GOTO 1400,1450
- 1070 IF X=13 THEN ON SGN(IN)+1 GOTO 1500,1550
- 1080 IF X=65 THEN ON SGN(IN)+1 GOTO 1600,1650
- 1081 IF X=32 THEN PRINT #1,"PASS":GOTO 1090
- 1085 IF X=83 OR X=115 THEN 1700
- 1086 IF X=80 OR X=112 THEN IF PA=1 THEN PA=0:PRINT #1,"PAUSE OFF":GOTO 1000
- 1087 IF X=80 OR X=112 THEN IF PA=0 THEN PA=1:PRINT #1,"PAUSE ON":GOTO 1000
- 1089 PRINT #1,"HUH?":GOTO 1000
- 1090 PW(0)=PW(0)-1+SGN(IN)*.9:IF PW(0)<0 THEN C(0)=0:PRINT #1,"":PRINT #1,"YOU HAVE STARVED!!!!!":GOTO 1093
- 1091 PRESET (168,168):PRINT #1,"FOOD=";MID$(STR$(INT(PW(0)*10+0.5)/10),2);:PRESET (168,176):PRINT #1,"H.P.=";C(0);:PRESET (168,184):PRINT #1,"GOLD=";C(5);:PRESET (0,160)
- 1092 PW(0)=INT(PW(0)*10)/10
- 1093 IF C(0)<=0 THEN 6000
- 1095 IF IN>0 THEN GOSUB 60910:GOSUB 4000:IF C(0)<=0 THEN 1093
- 1096 IF IN=0 THEN GOSUB 100
- 1097 IF IN>0 THEN GOSUB 200
- 1098 PRESET (168,168):PRINT #1,"FOOD=";MID$(STR$(INT(PW(0)*10+0.5)/10),2);:PRESET (168,176):PRINT #1,"H.P.=";C(0);:PRESET (168,184):PRINT #1,"GOLD=";C(5);:PRESET (0,160): GOTO 1000
- 1100 PRINT #1,"NORTH":IF TE%(TX,TY-1)=1 THEN PRINT #1,"YOU CAN'T PASS THE MOUNTAINS":GOTO 1090
- 1110 TY=TY-1:GOTO 1090
- 1150 IF DN%(PX+DX,PY+DY)<>1 AND DN%(PX+DX,PY+DY)<10 THEN PX=PX+DX:PY=PY+DY
- 1155 PRINT #1,"FORWARD"
- 1160 IF DN%(PX,PY)=2 THEN PRINT #1,"AAARRRGGGHHH!!! A TRAP!":C(0)=C(0)-INT(RND(1)*IN+3):MR=1:IN=IN+1:PRINT #1,"FALLING TO LEVEL ";IN:GOSUB 500:GOSUB 60910:GOTO 1090
- 1165 Z=0
- 1170 IF DN%(PX,PY)=5 THEN DN%(PX,PY)=0:PRINT #1,"GOLD!!!!!":Z=INT(RND(1)*5*IN+IN):PRINT #1,Z;"-PIECES OF EIGHT":C(5)=C(5)+Z
- 1175 IF Z>0 THEN Z=INT(RND(1)*6):PRINT #1,"AND A ";W$(Z):PW(Z)=PW(Z)+1:GOTO 1090
- 1190 GOTO 1090
- 1200 PRINT #1,"EAST":IF TE%(TX+1,TY)=1 THEN PRINT #1,"YOU CAN'T PASS THE MOUNTAINS":GOTO 1090
- 1210 TX=TX+1:GOTO 1090
- 1250 PRINT #1,"TURN RIGHT"
- 1255 IF DX<>0 THEN DY=DX:DX=0:GOTO 1090
- 1260 DX=-DY:DY=0:GOTO 1090
- 1300 PRINT #1,"WEST":IF TE%(TX-1,TY)=1 THEN PRINT #1,"YOU CAN'T PASS THE MOUNTAINS":GOTO 1090
- 1310 TX=TX-1:GOTO 1090
- 1350 PRINT #1,"TURN LEFT"
- 1355 IF DX<>0 THEN DY=-DX:DX=0:GOTO 1090
- 1360 DX=DY:DY=0:GOTO 1090
- 1400 PRINT #1,"SOUTH":IF TE%(TX,TY+1)=1 THEN PRINT #1,"YOU CAN'T PASS THE MOUNTAINS":GOTO 1090
- 1410 TY=TY+1:GOTO 1090
- 1450 PRINT #1,"TURN AROUND":DX=-DX:DY=-DY:GOTO 1090
- 1500 IF TE%(TX,TY)=3 THEN CLOSE #1:GOSUB 60080:GOSUB 60200:GOSUB 60900:GOTO 1090
- 1510 IF TE%(TX,TY)=4 AND IN=0 THEN PRINT #1,"GO DUNGEON":PRINT #1,"PLEASE WAIT ":IN=1:GOSUB 500:DX=1:DY=0:PX=1:PY=1:GOTO 1090
- 1515 IF TE%(TX,TY)=5 THEN 7000
- 1520 PRINT #1,"HUH?":GOTO 1000
- 1550 IF DN%(PX,PY)<>7 AND DN%(PX,PY)<>9 THEN 1580
- 1555 PRINT #1,"GO DOWN TO LEVEL ";IN+1
- 1560 IN=IN+1:GOSUB 500:MR=1:GOTO 1090
- 1580 IF DN%(PX,PY)<>8 THEN PRINT #1,"HUH?":GOTO 1090
- 1581 IF IN=1 THEN PRINT #1,"LEAVE DUNGEON":IN=0:GOTO 1586
- 1584 PRINT #1,"GO UP TO LEVEL ";IN-1
- 1585 IN=IN-1:GOSUB 500:MR=1
- 1586 IF IN=0 THEN PRINT #1,"THOU HAST GAINED":PRINT #1,LK;" HIT POINTS":C(0)=C(0)+LK:LK=0
- 1587 GOTO 1090
- 1600 GOTO 1090
- 1650 MN=0:DA=0:PRINT #1,"ATTACK":PRINT #1,"WHICH WEAPON ";:Q$=INPUT$(1)
- 1651 IF Q$="R" THEN DA=10:PRINT #1,"RAPIER":IF PW(1)<1 THEN PRINT #1,"NOT OWNED":GOTO 1650
- 1652 IF Q$="A" THEN DA=5:PRINT #1,"AXE":IF PW(2)<1 THEN PRINT #1,"NOT OWNED":GOTO 1650
- 1653 IF Q$="S" THEN DA=1:PRINT #1,"SHIELD":IF PW(3)<1 THEN PRINT #1,"NOT OWNED":GOTO 1650
- 1654 IF Q$="B" THEN DA=4:PRINT #1,"BOW":IF PW(4)<1 THEN PRINT #1,"NOT OWNED":GOTO 1650
- 1655 IF Q$="M" THEN PRINT #1,"MAGIC AMULET":GOTO 1680
- 1656 IF Q$="B" AND PT$="M" THEN PRINT #1,"MAGES CAN'T USE BOWS!":GOTO 1650
- 1657 IF Q$="R" AND PT$="M" THEN PRINT #1,"MAGES CAN'T USE RAPIERS!":GOTO 1650
- 1659 IF DA=0 THEN PRINT #1,"HANDS"
- 1660 IF DA=5 OR DA=4 THEN 1670
- 1661 MN=DN%(PX+DX,PY+DY)/10:MN=INT(MN)
- 1662 IF MN<1 OR C(2)-RND(1)*251663 PRINT #1,"HIT!!! ":DA=(RND(1)*DA+C(1)/5):MZ%(MN,1)=MZ%(MN,1)-DA
- 1664 PRINT #1,M$(MN);"'S HIT POINTS=";MZ%(MN,1)
- 1665 IF MZ%(MN,1)<1 THEN PRINT #1,"THOU HAST KILLED A ";M$(MN):PRINT #1,"THOU SHALT RECEIVE":DA=INT(MN+IN):PRINT #1,DA;" PIECES OF EIGHT"
- 1666 IF MZ%(MN,1)<1 THEN C(5)=INT(C(5)+DA):DN%(ML%(MN,0),ML%(MN,1))=DN%(ML%(MN,0),ML%(MN,1))-10*MN:MZ%(MN,0)=0
- 1667 LK=LK+INT(MN*IN/2):IF MN=TA THEN TA=-TA
- 1668 IF PA=1 THEN PRINT #1,"-CR- TO CONT. ";:Q$=INPUT$(1)
- 1669 GOSUB 60910:GOTO 1090
- 1670 IF DA=5 THEN PRINT #1,"TO THROW OR SWING:";:Q$=INPUT$(1):IF Q$<>"T" THEN PRINT #1,"SWING":GOTO 1661
- 1671 IF DA=5 THEN PRINT #1,"THROW":PW(2)=PW(2)-1
- 1672 FOR Y=1 TO 5:IF PX+DX*Y<1 OR PX+DX*Y>9 OR PY+DY*Y>9 OR PY+DY*Y<0 THEN 1662
- 1673 MN=DN%(PX+DX*Y,PY+DY*Y):MN=INT(MN/10):IF MN>0 THEN 1662
- 1674 NEXT:GOTO 1662
- 1680 IF PW(5)<1 THEN PRINT #1,"NONE OWNED":GOTO 1650
- 1681 IF PT$="F" THEN Q=INT(RND(1)*4+1):GOTO 1685
- 1682 PRINT #1,"1-LADDER-UP","2-LADDER-DN":PRINT #1,"3-KILL","4-BAD??":PRINT #1,"CHOICE ";:Q$=INPUT$(1):Q=VAL(Q$):PRINT Q:IF Q<1 OR Q>4 THEN 1682
- 1683 IF RND(1)>.75 THEN PRINT #1,"LAST CHARGE ON THIS AMULET!":PW(5)=PW(5)-1
- 1685 ON Q GOTO 1686,1690,1691,1692
- 1686 PRINT #1,"LADDER UP":DN%(PX,PY)=8:GOTO 1090
- 1690 PRINT #1,"LADDER DOWN":DN%(PX,PY)=7:GOTO 1090
- 1691 PRINT #1,"MAGIC ATTACK":DA=10+IN:GOTO 1672
- 1692 ON INT(RND(1)*3+1) GOTO 1693,1695,1697
- 1693 PRINT #1,"YOU HAVE BEEN TURNED":PRINT #1,"INTO A TOAD!"
- 1694 FOR Z2=1 TO 4:C(Z2)=3:NEXT Z2:GOTO 1090
- 1695 PRINT #1,"YOU HAVE BEEN TURNED":PRINT #1,"INTO A LIZARD MAN":FOR Y=0 TO 4:C(Y)=INT(C(Y)*2.5):NEXT:GOTO 1090
- 1697 PRINT #1,"BACKFIRE":C(0)=C(0)/2:GOTO 1090
- 1700 CLOSE #1:GOSUB 60080:PRINT "PRESS ENTER TO CONTINUE";:Q$=INPUT$(1):GOSUB 60900:GOTO 1090
- 2000 NM=0:FOR X=1 TO 10
- 2005 MZ%(X,0)=0:MZ%(X,1)=X+3+IN
- 2010 IF X-2>IN OR RND(1)>.4 THEN 2090
- 2020 ML%(X,0)=INT(RND(1)*9+1):ML%(X,1)=INT(RND(1)*9+1)
- 2030 IF DN%(ML%(X,0),ML%(X,1))<>0 THEN 2020
- 2040 IF ML%(X,0)=PX AND ML%(X,1)=PY THEN 2020
- 2050 DN%(ML%(X,0),ML%(X,1))=X*10
- 2051 MZ%(X,0)=1
- 2052 NM=NM+1
- 2055 MZ%(X,1)=X*2+IN*2*LP
- 2090 NEXT:RETURN
- 3087 LINE (C-28/DI,B-41/DI)-(C+30/DI,B-55/DI):LINE (C+28/DI,B-58/DI)-(C+22/DI,B-56/DI):LINE -(C+22/DI,B-53/DI):LINE -(C+28/DI,B-52/DI):LINE -(C+34/DI,B-54/DI):LINE -(C+20/DI,B-50/DI):LINE -(C+26/DI,B-47/DI)
- 3088 LINE (C+10/DI,B-58/DI)-(C+10/DI,B-61/DI):LINE -(C+4/DI,B-58/DI):LINE (C-10/DI,B-58/DI)-(C-10/DI,B-61/DI):LINE -(C-4/DI,B-58/DI):LINE (C+40/DI,B-9/DI)-(C+50/DI,B-12/DI):LINE -(C+40/DI,B-7/DI)
- 3089 LINE (C-8/DI,B-25/DI)-(C+6/DI,B-7/DI):LINE -(C+28/DI,B-7/DI):LINE -(C+28/DI,B-9/DI):LINE -(C+20/DI,B-9/DI):LINE -(C+6/DI,B-25/DI):GOTO 490
- 4000 FOR MM=1 TO 10:IF MZ%(MM,0)=0 THEN 4999
- 4010 RA=SQR((PX-ML%(MM,0))^2+(PY-ML%(MM,1))^2)
- 4011 IF MZ%(MM,1)4020 IF RA<1.3 THEN 4500
- 4025 IF MM=8 AND RA<3 THEN 4999
- 4030 X1=SGN(PX-ML%(MM,0)):Y1=SGN(PY-ML%(MM,1))
- 4031 IF MZ%(MM,1)4035 IF Y1=0 THEN 4045
- 4040 D=DN%(ML%(MM,0),ML%(MM,1)+Y1):IF D=1 OR D>9 OR D=2 THEN 4045
- 4042 X1=0:GOTO 4050
- 4045 Y1=0:IF X1=0 THEN 4050
- 4046 D=DN%(ML%(MM,0)+X1,ML%(MM,1)):IF D=1 OR D>9 OR D=2 THEN X1=0:GOTO 4081
- 4050 DN%(ML%(MM,0),ML%(MM,1))=DN%(ML%(MM,0),ML%(MM,1))-10*MM
- 4055 IF ML%(MM,0)+X1=PX AND ML%(MM,1)+Y1=PY THEN 4999
- 4060 ML%(MM,0)=ML%(MM,0)+X1:ML%(MM,1)=ML%(MM,1)+Y1
- 4080 DN%(ML%(MM,0),ML%(MM,1))=DN%(ML%(MM,0),ML%(MM,1))+10*MM
- 4081 IF X1<>0 OR Y1<>0 THEN 4999
- 4082 IF MZ%(MM,1)4083 IF MZ%(MM,1)4499 GOTO 4999
- 4500 IF MM=2 OR MM=7 THEN 4600
- 4509 PRESET (0,160):PRINT #1,"YOU ARE BEING ATTACKED":PRINT #1,"BY A ";M$(MM)
- 4510 IF RND(1)*20-SGN(PW(3))-C(3)+MM+IN<0 THEN PRINT #1,"MISSED":GOTO 4525
- 4520 PRINT #1,"HIT":C(0)=C(0)-INT(RND(1)*MM+IN)
- 4525 IF PA=1 THEN PRINT #1,"-CR- TO CONT. ";:Q$=INPUT$(1)
- 4530 GOTO 4999
- 4600 IF RND(1)<.5 THEN 4509
- 4610 IF MM=7 THEN PW(0)=INT(PW(0)/2):PRINT #1,"A GREMLIN STOLE SOME FOOD":GOTO 4525
- 4620 ZZ=INT(RND(1)*6):IF PW(ZZ)<1 THEN 4620
- 4630 PRINT #1,"A THIEF STOLE A ";W$(ZZ):PW(ZZ)=PW(ZZ)-1:GOTO 4525
- 4999 NEXT:RETURN
- 6000 PRINT #1,"":PRINT #1,"":PRINT #1," WE MOURN THE PASSING OF"
- 6005 IF LEN(PN$)>22 THEN PN$=""
- 6010 IF PN$="" THEN PN$="THE PEASANT"
- 6020 PN$=PN$+" AND HIS COMPUTER"
- 6030 PRINT #1,PN$
- 6035 PRINT #1," TO INVOKE A MIRACLE OF RESURRECTION"
- 6040 PRINT #1," ";
- 6050 IF INKEY$=CHR$(27) THEN 1
- 6060 GOTO 6050
- 7000 SCREEN 0:WIDTH 40:CLS:GO=0
- 7010 IF PN$<>"" THEN 7500
- 7020 PRINT:PRINT:PRINT " WELCOME PEASANT INTO THE HALLS OF":PRINT "THE MIGHTY LORD BRITISH. HEREIN THOU MAYCHOOSE TO DARE BATTLE WITH THE EVIL":PRINT "CREATURES OF THE DEPTHS, FOR GREAT":PRINT "REWARD!"
- 7030 PRINT:PRINT "WHAT IS THY NAME PEASANT ";:INPUT PN$
- 7040 PRINT "DOEST THOU WISH FOR GRAND ADVENTURE ? ";:Q$=INPUT$(1):IF Q$<>"Y" THEN PRINT:PRINT "THEN LEAVE AND BEGONE!":PN$="":PRINT:PRINT " PRESS -SPACE TO CONT.";:Q$=INPUT$(1):GOTO 1090
- 7045 PRINT
- 7050 PRINT:PRINT "GOOD! THOU SHALT TRY TO BECOME A":PRINT "KNIGHT!!!":PRINT:PRINT "THY FIRST TASK IS TO GO INTO THE":PRINT "DUNGEONS AND TO RETURN ONLY AFTER":PRINT "KILLING A(N) ";:TA=INT(C(4)/3):PRINT M$(TA)
- 7060 PRINT:PRINT " GO NOW UPON THIS QUEST, AND MAY":PRINT "LADY LUCK BE FAIR UNTO YOU.....":PRINT ".....ALSO I, BRITISH, HAVE INCREASED":PRINT "EACH OF THY ATTRIBUTES BY ONE!"
- 7070 PRINT:PRINT " PRESS -SPACE- TO CONT.";:Q$=INPUT$(1):FOR X=0 TO 5:C(X)=C(X)+1:NEXT:CLS:GOTO 1090
- 7500 IF TA>0 THEN PRINT #1,"":PRINT #1,"":PRINT #1,PN$;" WHY HAST THOU RETURNED?":PRINT #1,"THOU MUST KILL A(N) ";M$(TA):PRINT #1,"GO NOW AND COMPLETE THY QUEST!":PRINT #1,"":PRINT #1," PRESS -SPACE- TO CONT.";:Q$=INPUT$(1):CLS:GOTO 1090
- 7510 PRINT #1,"":PRINT #1,"":PRINT #1,"":PRINT #1,"AAHH!!......";PN$:PRINT #1,"":PRINT #1,"THOU HAST ACOMPLISHED THY QUEST!":IF ABS(TA)=10 THEN 7900
- 7520 PRINT #1,"UNFORTUNATELY, THIS IS NOT ENOUGH TO":PRINT #1,"BECOME A KNIGHT.":TA=ABS(TA)+1:PRINT #1,"":PRINT #1,"NOW THOU MUST KILL A(N) ";M$(TASK)
- 7530 GOTO 7060
- 7900 SCREEN 0:WIDTH 40:CLS:GO=0:PRINT:PRINT:PRINT:PN$="LORD "+PN$:PRINT " ";PN$;","
- 7910 PRINT " THOU HAST PROVED THYSELF WORTHY":PRINT "OF KNIGHTHOOD, CONTINUE PLAY IF THOU":PRINT "DOTH WISH, BUT THOU HAST ACOMPLISHED":PRINT "THE MAIN OBJECTIVE OF THIS GAME..."
- 7920 IF LP=10 THEN 7950
- 7930 PRINT:PRINT " NOW MAYBE THOU ART FOOLHEARTY":PRINT "ENOUGH TO TRY DIFFICULTY LEVEL ";LP+1
- 7940 GOTO 7070
- 7950 PRINT:PRINT "...CALL CALIFORNIA PACIFIC COMPUTER":PRINT "AT (415)-569-9126 TO REPORT THIS":PRINT "AMAZING FEAT!"
- 7990 GOTO 7070
- 50000 REM TEST MONSTERS (BY NANOCHESS)
- 50002 MC=1
- 50003 SCREEN 2:OPEN "GRP:" AS #1
- 50005 C=160:B=120:DI=1
- 50010 EN=1:GOSUB 270
- 50020 A$=INPUT$(1)
- 50025 MC=MC+1:IF MC<11 THEN 50003
- 50030 SCREEN 0
- 50040 END
- 60000 SCREEN 0:WIDTH 40:CLS:GO=0:LOCATE ,4:INPUT "TYPE THY LUCKY NUMBER.....";Q$:LN=VAL(Q$)
- 60005 LOCATE ,6:INPUT "LEVEL OF PLAY(1-10)......";Q$:LP=INT(VAL(Q$))
- 60006 IF LP<1 OR LP>10 THEN 60005
- 60010 ZZ=RND(-ABS(LN))
- 60020 DATA "HIT POINTS.....","STRENGTH.......","DEXTERITY......","STAMINA........","WISDOM.........","GOLD..........."
- 60025 DIM PW(5)
- 60030 DIM C$(5):FOR X=0 TO 5:READ C$(X):NEXT
- 60040 DIM C(5)
- 60041 DIM M$(10),ML%(10,1),MZ%(10,1)
- 60042 DATA "SKELETON","THIEF","GIANT RAT","ORC","VIPER","CARRION CRAWLER","GREMLIN","MIMIC","DAEMON","BALROG"
- 60043 FOR X=1 TO 10:READ M$(X):NEXT
- 60050 FOR X=0 TO 5:C(X)=INT(SQR(RND(1))*21+4):NEXT X
- 60060 CLS:LOCATE ,7:FOR X=0 TO 5:PRINT C$(X);C(X):NEXT:PRINT:PRINT"SHALT THOU PLAY WITH THESE QUALITIES?":LOCATE 19:LINE INPUT Q$:IF Q$<>"Y" THEN 60050
- 60061 LOCATE ,14:PRINT:PRINT "AND SHALT THOU BE A FIGHTER OR A MAGE?":LOCATE 20:LINE INPUT PT$
- 60062 IF PT$="M" OR PT$="F" THEN 60070
- 60063 GOTO 60061
- 60070 DIM W$(5):DATA "FOOD","RAPIER","AXE","SHIELD","BOW AND ARROWS","MAGIC AMULET":FOR X=0 TO 5:READ W$(X):NEXT
- 60075 GOSUB 60080:GOSUB 60200:RETURN
- 60080 SCREEN 0:WIDTH 40:CLS:GO=0:PRINT:PRINT:PRINT " STAT'S WEAPONS":PRINT:FOR X=0 TO 5:LOCATE ,4+X:PRINT C$(X);C(X);TAB(24);"0-";W$(X):NEXT
- 60081 LOCATE 17,10:PRINT "Q-QUIT"
- 60085 FOR Z=0 TO 5:LOCATE 24-LEN(STR$(PW(Z))),4+Z:PRINT PW(Z):NEXT
- 60090 LOCATE 4,16:PRINT "PRICE";:LOCATE 14:PRINT "DAMAGE";:LOCATE 24:PRINT "ITEM"
- 60100 FOR X=0 TO 5:LOCATE 24,18+X:PRINT W$(X);:NEXT X
- 60110 LOCATE 4,18:PRINT "1 FOR 10";:LOCATE 14:PRINT "N/A":LOCATE 4,19:PRINT "8";:LOCATE 14:PRINT "1-10":LOCATE 4,20:PRINT "5";:LOCATE 14:PRINT "1-5"
- 60120 LOCATE 4,21:PRINT "6";:LOCATE 14:PRINT "1":LOCATE 4,22:PRINT "3";:LOCATE 14:PRINT "1-4":LOCATE 4,23:PRINT "15";:LOCATE 14:PRINT "?????";:LOCATE 0,0
- 60130 RETURN
- 60200 LOCATE 0,12:PRINT"WELCOME TO THE ADVENTURE SHOP"
- 60210 LOCATE 0,13:PRINT STRING$(120," "):LOCATE 0,13
- 60211 PRINT "WHICH ITEM SHALT THOU BUY ";:Q$=INPUT$(1):IF Q$="Q" THEN PRINT:PRINT "BYE":SCREEN 0:CLS:WIDTH 40:GO=0:RETURN
- 60215 Z=-1
- 60220 IF Q$="F" THEN PRINT "FOOD":Z=0:P=1
- 60221 IF Q$="R" THEN PRINT "RAPIER":Z=1:P=8
- 60222 IF Q$="A" THEN PRINT "AXE":Z=2:P=5
- 60223 IF Q$="S" THEN PRINT "SHIELD":Z=3:P=6
- 60224 IF Q$="B" THEN PRINT "BOW":Z=4:P=3
- 60225 IF Q$="M" THEN PRINT "AMULET":Z=5:P=15
- 60226 IF Z=-1 THEN PRINT Q$:PRINT "I'M SORRY WE DON'T HAVE THAT.":GOTO 60210
- 60227 IF Q$="R" AND PT$="M" THEN PRINT "I'M SORRY MAGES":PRINT "CAN'T USE THAT!":GOTO 60210
- 60228 IF Q$="B" AND PT$="M" THEN PRINT "I'M SORRY MAGES":PRINT "CAN'T USE THAT!":GOTO 60210
- 60230 IF C(5)-P<0 THEN PRINT "M'LORD THOU CAN NOT AFFORD THAT ITEM.":GOTO 60210
- 60235 IF Z=0 THEN PW(Z)=PW(Z)+9
- 60236 PW(Z)=PW(Z)+1:C(5)=C(5)-P
- 60237 LOCATE 15,9:PRINT C(5);" "
- 60240 LOCATE 24-LEN(STR$(PW(Z))),4+Z:PRINT PW(Z);
- 60250 GOTO 60210
- 60868 CY=CSRLIN:CX=POS(0):IF CX>=31 THEN RETURN ELSE PRINT STRING$(31-CX," ");:LOCATE CX:RETURN
- 60900 SCREEN 2:IF GO=0 THEN OPEN "GRP:" AS #1:GO=1:CLS:RETURN ELSE CLS:RETURN
- 60910 LINE (0,160)-(167,191),1,BF
- 60915 RETURN
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement