0üÁ 0üA ClrHome:Disp "",""," MINESWEEPER","John Chen":Output(6,1,"www.geocities.com/johnchenjohnchen/"):0üG:Repeat getKeyø0:G+1üG:If G>100:Output(randInt(1,8),randInt(1,16),"*") If randInt(1,300)=1:prgmMINESWPR End ClrHome:Disp "CONTROLS","Move - Arrows","Select - 2nd","Flag - ALPHA","Pause - F1":Output(7,1,"Autosave Enabled"):Output(8,1,"Auto-Off Enabled"):Pause :ClrHome:5üdim(áMINE) Lbl M:0üL Menu("MINESWEEPER","NEW GAME",N,"SAVED GAME",S,"DELETE SAVED",Q,"INSTRUCTIONS",J,"SYSTEM INFO",I) Lbl J:Disp "Numbers indicate","how many bombs","surround square.","Place flags on","location of","bombs to win.":Pause :ClrHome:Goto M Lbl I ClrHome:Disp "By John Chen","7/3/2006","Memory: 4000","Components:","[J],áMINE","Archive to save ","RAM" Output(8,15,"->"): Pause :ClrHome:Disp "See John Chen","for questions,","comments,","suggestions,","glitch-","reporting,","personalization,":Output(8,1,"or cheats."):Pause :ClrHome Goto M Lbl S:5üdim(áMINE):If sum(áMINE)÷0 or fPart(áMINE(1))ø0:Goto R dim([J]):Ans(1)üR:dim([J]):Ans(2)üC:If C>16 or R>8:Goto R: 1üL: Goto D Lbl R:ClrHome:Disp "UNAVAILABLE","The saved","account was","nonexistant,","deleted, or","corrupted.":Pause :ClrHome: Goto M Lbl N:ClrHome If sum(áMINE)>0 and fPart(áMINE(1))=0:Then Disp "NOTICE","Starting a new","game will create","a new account by","overwriting the","previously saved","acount.":Output(8,1,"<-CANCEL CONT->") 0üK:While K=0 getKeyüK:End If K=24:Goto M ClrHome:End 1üR:1üC:0üK Output(1,2,"'"):Output(2,1,"ú"):Output(8,14,"1X1"):Output(3,3,"Adjust Grid"):Output(4,6,"Size."):Output(5,4,"R - RANDOM") Repeat K=105 or K=75:0üK While 0=K:getKeyüK:End If K=75:Then: Lbl C:randInt(1,16)üC:If C=1:randInt(1,16)üC:randInt(1,8)üR:If R=1:randInt(1,8)üR randInt(1,RC)üN:If N>.5RC or N<.1RC:randInt(1,RC)üN:End ClrHome If K=24 and Cù2:C-1üC If K=26 and C÷15:C+1üC If K=25 and Rù2:R-1üR If K=34 and R÷7:R+1üR If Cø16:Then:For(X,1,R):Output(X,C+1,"'"):End:End: If Rø8:Then:For(X,1,C):Output(R+1,X,"ú"):End:End: If C÷2:Then:Output(8,15,"X"):Output(8,14,R):Output(8,16,C):Else:Output(1,2,"X"):Output(1,1,R):Output(1,3,C):End If R=8 and 16=C:Output(2,1,"FULL SCREEN") If K=75:Then:Output(1,7,"Bombs:"):Output(1,14,N):Output(3,1,"ENTER to Accept CLEAR to Redo"):Repeat K=105 or K=45:getKeyüK:End:If K=45:Then:75üK:Goto C:End 75üK End End {0,0,0,0,0}üáMINE:If Kø75:Then Repeat Nù1 and fPart(N)=0 and N÷RC:ClrHome:Disp "Bombs: ÷":Output(1,9,RC):If RC>1:Then:Output(8,1,"Recommend"):Output(8,11,round(RC/4,0)):End:Input "",N:End:End:NüáMINE(5) Output(7,4,"LOADING") {R,C}üdim([J]):Fill(0,[J]) For(Z,1,N) randInt(1,R)üD:randInt(1,C)üE:If [J](D,E)<10:Then 10ü[J](D,E):If EøC:[J](D,E+1)+1ü[J](D,E+1):If Eø1:[J](D,E-1)+1ü[J](D,E-1):If DøR:[J](D+1,E)+1ü[J](D+1,E):If Dø1:[J](D-1,E)+1ü[J](D-1,E):If DøR and EøC:[J](D+1,E+1)+1ü[J](D+1,E+1):If Dø1 and Eø1:[J](D-1,E-1)+1ü[J](D-1,E-1):If DøR and Eø1:[J](D+1,E-1)+1ü[J](D+1,E-1):If Dø1 and EøC:[J](D-1,E+1)+1ü[J](D-1,E+1) Output(8,A+1," "):round(Z/N*15,0)üA:Output(8,A+1,"*"):Output(7,12,round(Z/N*100,0)) Else:Z-1üZ End End 0üáMINE(1):0üF Lbl D ClrHome:1üA:1üB:1üT:0üS If R÷7:Then:Repeat S=C:1+SüS:Output(R+1,S,"ú"):End:End 0üS If C÷15:Then:Repeat S=R:1+SüS:Output(S,C+1,"'"):End:End If L=1:Then: For(D,1,R) For(E,1,C) If fPart([J](D,E))=.2:Output(D,E,"^") If fPart([J](D,E))=.1:Output(D,E,iPart([J](D,E))):End:End:End 1üT Lbl A:0üO 0üK:Repeat K=21 or K=31 or K=11 or K=104:O+1üO áMINE(1)+1üáMINE(1) If R÷6 or C÷10:Output(8,12,áMINE(1)) úTüT:If T>0:Output(A,B,"+") getKeyüK:If K>0:0üO:If O=1000000:Goto E If K=24 or K=25 or K=26 or K=34 or K=104:ú1üT If T=ú1:Then:If fPart([J](A,B))=0:Output(A,B," ") If fPart([J](A,B))=.1:Output(A,B,iPart([J](A,B))) If fPart([J](A,B))=.2:Output(A,B,"^"):End: If 11=K:Then:Menu("PAUSED","RESUME",A,"SAVE and EXIT",E) Lbl E:ClrHome:Disp "Your game has","been saved.":Stop:End If K=24 and Bø1:B-1üB If K=26 and BøC:B+1üB If K=25 and Aø1:A-1üA If K=34 and AøR:A+1üA End If K=104:Then: Lbl T 0üG:Repeat [J](A,B)<10 and fPart([J](A,B))=0:G+1üG:If GùRC and Gù50:Goto A randInt(1,R)üA:randInt(1,C)üB:End:áMINE(2)+1üáMINE(2):Goto Y:End If K=21:Then:áMINE(2)+1üáMINE(2):If fPart([J](A,B))=.2:áMINE(3)-1üáMINE(3):If [J](A,B)ù10:Goto L Lbl Y:iPart([J](A,B))+.1ü[J](A,B) Goto 9 End Lbl U If 31=K and fPart([J](A,B))=0 and áMINE(3)+1÷áMINE(5):Then:áMINE(3)+1üáMINE(3):0üK:[J](A,B)+.2ü[J](A,B):Output(A,B,"^"):If [J](A,B)ù10.2:áMINE(4)+1üáMINE(4):End: If K=31 and fPart([J](A,B))=.2:Then:Output(A,B," ") If [J](A,B)>10:áMINE(4)-1üáMINE(4) iPart([J](A,B))ü[J](A,B) áMINE(3)-1üáMINE(3) End Lbl 9 If áMINE(4)=áMINE(5) and RC=áMINE(2)+áMINE(3) and áMINE(3)=áMINE(4):Goto F Goto A Lbl F:If [J](A,B)ù10:Then:Output(A,B,"^"):Else:Output(A,B,iPart([J](A,B))):End:Output(7,6," "):Output(6,6," "):Output(8,6," "):Output(7,7,"SUCCESS!!!") Output(8,7,"Time:"):Output(8,12,áMINE(1)) Pause :ClrHome:Disp "Time:","Time Per Square:",áMINE(1)/(RC):Output(1,7,áMINE(1)):Pause :ClrHome Lbl V:DelVar áMINE:DelVar [J] Menu("MINESWEEPER","PLAY AGAIN",Á,"EXIT",Q) Lbl Á:prgmMINESWPR Lbl Q:DelVar áMINE:DelVar [J]:Stop Lbl L:Output(A,B,"*"):0üK Repeat 104=K or 105=K:getKeyüK End: If K=104:Then:áMINE(2)-1üáMINE(2):10ü[J](A,B):31üK:Goto U:End 1üD:0üE For(D,1,R) For(E,1,C) If [J](D,E)<10:Output(D,E,iPart([J](D,E))) If [J](D,E)ù10:Output(D,E,"*") End:End Pause :Goto V