0 'NEC 8201A adaptation by Dave Thomas 1 'for GEnie's Laptops RoundTable 2 CLEAR100:SCREEN,0:DEFINTA-Z:E=15:K=111:FORI=1TOVAL(RIGHT$(TIME$,2)):D=RND(1):NEXT 3 ONERRORGOTO84:GOSUB33 4 HE=8:CX=0:CY=MY:Q=0:CLS:GOSUB19:GOSUB54 5 A$=INKEY$:IFA$=""THEN5 6 A=ASC(A$):IFA<3ORA=6ORA=20OR(A>27ANDA<32)THEN7ELSE5 7 IFA<21THENFL=1 8 IFA=28ORA=6THEND=HE*8MODE 9 IFA=29ORA=1THEND=HE*2MODE 10 IFA=30ORA=20THEND=HE*1MODE 11 IFA=31ORA=2THEND=HE*4MODE 12 IFFLTHENHE=D:GOTO18 13 IFM(CX,CY)ANDDTHENBEEP:GOTO5 14 X=(D=2)-(D=8):Y=(D=1)-(D=4):GOSUB66:HE=D 15 IFINT(M(CX,CY)/16)=HE*4MODETHENML=ML-1:M(CX,CY)=M(CX,CY)ANDE 16 CX=CX+X:CY=CY+Y:Q=Q+1:IFCX<0 OR CX>MX OR CY<0 OR CY>MYTHEN18 17 IF(M(CX,CY)AND240)=0THENM(CX,CY)=M(CX,CY)OR(HE*16):ML=ML+1 18 GOSUB19:GOSUB54:FL=0:GOTO5 19 FORI=0TO7:LOCATE0,I:PRINTSPACE$(22);:NEXT 20 LINE(0,0)-(127,63),1,B:RESTORE 21 FORZD=0TO4:READH,J,L,M,R,P,V,B:GOSUB24:IFZTHENRETURN 22 :NEXT 23 ZD=5:GOSUB24:LINE(55,27)-(71,35):LINE(55,35)-(71,27):RETURN 24 X=CX+ZD*((HE=2)-(HE=8)):Y=CY+ZD*((HE=1)-(HE=4)):IFX<0 OR X>MX OR Y<0 OR Y>MYTHEN30 25 RM=M(X,Y)ANDE:ZL=HE*2MODE:ZF=HE:ZR=HE*8MODE:IFZD=5THENRETURN 26 F=H:G=J:IFRMANDZLTHENF=L:G=M 27 LINE(R,F)-(P,H):LINE-(P,J):LINE-(R,G):F=H:G=J:IFRMANDZRTHENF=L:G=M 28 LINE(V,F)-(B,H):LINE-(B,J):LINE-(V,G):Z=0:IFRMANDZFTHENLINE(P,H)-(B,J),1,B:Z=1 29 RETURN 30 RM=E:IFZD=0THEN77 31 Z=1:IFZD=1THENLINE(E,7)-(K,55),1,BF:RETURN 32 C=4*ZD:LINE(E+C+C,7+C)-(K-C-C,55-C),1,BF:RETURN 33 CLS:GOSUB67:CLS 34 PRINT:PRINT"Size of maze:X";:INPUTMX:MX=INT(MX-1):LOCATE20,1:PRINT"Y";:INPUTMY:MY=INT(MY-1) 35 IFMY>14ORMX>25THENPRINT"Max. X is 26, Max. Y is 15":GOTO34 36 IFMX<1ORMY<1THENPRINT"Size must be greater than one":GOTO34 37 DIMM(MX,MY):FORY=0TOMY:FORX=0TOMX:M(X,Y)=E:NEXT:NEXT 38 CX=0:CY=MY:CLS:LOCATE14,1:PRINT"Building Maze":ML=0:DIMD(4):N=(MX+1)*(MY+1):N9=1 39 D=0 40 LOCATE19,2:PRINTN-N9; 41 IFCY>0THENIFM(CX,CY-1)=ETHEND=D+1:D(D)=1 42 IFCX>0THENIFM(CX-1,CY)=ETHEND=D+1:D(D)=2 43 IFCYMXTHENCY=DR-MX-1:M(MX,CY)=M(MX,CY)-8ELSECX=DR:M(CX,0)=M(CX,0)-1 50 RETURN 51 CX=CX+1:IFCX>MXTHENCX=0:CY=CY+1 52 IFCY>MYTHENCY=0 53 IFM(CX,CY)=ETHEN51ELSERETURN 54 Y1=CY:Y2=CY:X1=CX:X2=CX:IFZD=5THENZD=4 55 IFHE=1THENY1=Y1-ZD:IFY1<0THENY1=0 56 IFHE=2THENX1=X1-ZD:IFX1<0THENX1=0 57 IFHE=4THENY2=Y2+ZD:IFY2>MYTHENY2=MY 58 IFHE=8THENX2=X2+ZD:IFX2>MXTHENX2=MX 59 FORUY=Y1TOY2:VY=3+UY*4:FORUX=X1TOX2 60 VX=132+UX*4:FORI=0TO3:VD=2^I:IFVDANDM(UX,UY)THENPRINT"";ELSEGOTO62 61 LINE(VX-(I=3)*4,VY-(I=2)*4)-(VX-(I<>1)*4,VY-(I<>0)*4) 62 NEXT:NEXT:NEXT 63 VX=132+CX*4:VY=3+CY*4:LINE(VX+1,VY+1)-(VX+3,VY+3),0,B 64 C=(HE=1)OR(HE=4):LINE(VX+1-2*(HE=2),VY+1-2*(HE=1))-(VX+3+2*(HE=8),VY+3+2*(HE=4)):LINE(VX+1-C,VY+2+C)-(VX+3+C,VY+2-C) 65 RETURN 66 VX=132+CX*4:VY=3+CY*4:LINE(VX+1,VY+1)-(VX+3,VY+3),0,B:RETURN 67 PRINT"Would you like instructions?";:A$=INPUT$(1):IFA$<>"Y"ANDA$<>"y"THENRETURNELSECLS 68 R$=CHR$(27):LOCATE17,0:PRINTR$;"pMAZ";R$;"qing":LOCATE2,1:PRINT"by Jim Straus; recoded by Alan Stein":LOCATE3,2:PRINT"NEC 8201 adaptation by Dave Thomas" 69 LOCATE2,3:PRINT"The object of the game is to find yourway out of a maze. The left side of the" 70 PRINT"screen is your view inside the maze. The right side is where you have been." 71 LOCATE8,7:PRINTR$;"pPress any key to continue";R$;"q"; 72 IFINKEY$=""THEN72 73 CLS:PRINT"The maze can be anywhere from 2 by 2 to 26 by 15 units in size. Use the cursor keys to move, and the"; 74 PRINT" down-cursor key to turn in place.":LOCATE16,5:PRINT"Good Luck!" 75 LOCATE8,7:PRINTR$;"pPress any key to continue";R$;"q";:IFINKEY$=""THEN75 76 RETURN 77 FORI=0TO7:LOCATE0,I:PRINTSPACE$(22);:NEXT 78 ML=ML+1:IFML=QTHENLOCATE5,0:PRINT"You Win!!!"ELSELOCATE0,0:PRINT"You Had";Q-ML;"Extra Moves" 79 LOCATE0,2:PRINT"Best Run is";ML;"Moves":LOCATE0,4:PRINT"Your Score is";INT(((ML-INT((Q-ML))/2))/ML*100):Y1=0:Y2=MY:X1=0:X2=MX 80 GOSUB59 81 LOCATE0,6:PRINT"Again?";:A$=INPUT$(1):IFA$="N"ORA$="n"THENMENUELSERUN 82 DATA7,55,0,63,0,15,127,111,15,47,7,55,15,31,111,95,19,43,15,47,31,39,95,87,23,39 83 DATA19,43,39,47,87,79,27,35,23,39,47,55,79,71 84 CLS:PRINT:PRINT" Oops! LINE must be enabled for this!":END