// Title: Mine Sweeper Name: MINESPR First version: March-ish 1997 Version: v2.2 (February 6, 1999) Author: Bungeman (Ben Wagner) Email: bungeman@juno.com Webpage: http://members.tripod.com/~bungeman/casio Model: 9850, 9950 Description: My fourth stab at my Casio. This is a fully graphical mine sweeper program, just like in Windows. No anoying ? marker here! (People who use them are loosers!!!) Anyway, all the documentation to play is contained in the program. Before play, you may want to bring down the contrast on Orange, it makes it a bit eisier to see the field. The lower case x used in the listing is the multiplication symbol. // GridOff AxesOff ViewWindow 1,127,5,63,1,5 F-Line 13,4,35,4 F-Line 92,4,114,4 Orange F-Line 13,3,35,3 Orange F-Line 92,3,114,3 Green F-Line 13,2,35,2 Green F-Line 92,2,114,2 Text 1,38,"MINE SWEEPER" Text 45,5,"WOULD YOU LIKE INSTRUCTIONS?" 0->A:Prog "~MENU" Prog "~MENU" Green Text 58,5,"NO" Green Text 58,25,"YES" PxlOff 1,127 Do Getkey->K LpWhile K<>79 And K<>69 100->Z:45->I:Prog "~CLR" 10->A:Prog "~MENU" Prog "~MENU" If K=69 Then Text 8,1,"CLEAR THE FEILD WITHOUT" Text 14,1,"UNCOVERING ANY MINES. Text 21,1,"THE NUMBER REVEALED BY" Text 27,1,"UNCOVERING IS THE NUMBER OF" Text 33,1,"MINES IN THESURROUNDING" Text 39,1,"EIGHT SQUARES." Text 47,1,"IF YOU UNCOVER A MINE YOU DIE" Text 57,1,"PRESS ANY KEY..." PxlOff 1,127 Do Getkey->K LpWhile K=0 For 8->I To 58 Step 5 Prog "~CLR" Next Text 8,2,"USE THE ARROW KEYS TO MOVE." Text 15,2,"F1-EXITS" Text 22,2,"F5-UNCOVERS" Text 29,2,"F6-MARKS AS MINE" Text 57,2,"PRESS A KEY..." PxlOff 1,127 Do Getkey->K LpWhile K=0 For 8->I To 33 Step 6 Prog "~CLR" Next 57->I:Prog "~CLR" IfEnd For 1->I To 127 Step 7 Oprange F-Line I,7,I,63 Next For 7->I To 63 Step 7 Orange F-Line 1,I,127,I Next For 8->I To 62 Green F-Line 2,I,126,I Next 8->H:18->W 20->Z:Z->O:WH-Z->Q 0->U:0->V H->Y:W->X Prog "~DIM" Mat Ans->Mat F Mat A For 1->I To Z Int (WRan#+1)->M Int (HRan#+1)->N If Mat F[N,M] Then I-1->I Else 9->Mat F[N.M] Text 1,118,I For -1->J To 1 For -1->K To 1 M+J->X:N+K->Y If X>0 And X0 And YMat F[Y,X] IfEnd IfEnd Next Next IfEnd Next 0->M:0->N For 3->I To W-2 For 3->J To H-2 If Mat F[J,I]=0 Then I->M:7M-6->R J->N:7N->S H->J:W->I IfEnd Next Next PxlOn S,R PxlOn S+7,R PxlOn S+7,R+7 PxlOn S,R+7 PxlOff 1,127 Do Do Getkey->K U+1->U If U>100 Then 0->U If V<999 Then V+1->V Text 1,1,V IfEnd IfEnd LpWhile K=0 If K=28 Or K=27 Or K=37 Or K=38 Then If K=28 And N>1 Then N-1->N Orange PxlOn S+7,R Orange PxlOn S+7,R+7 PxlOn S-7,R PxlOn S-7,R+7 IfEnd If K=37And NN Orange PxlOn S,R Orange PxlOn S,R+7 PxlOn S+14,R PxlOn S+14,R+7 IfEnd If K=38 And M>1 Then M-1=>M Orange PxlOn S,R+7 Orange PxlOn S+7,R+7 PxlOn S,R-7 PxlOn S+7,R-7 IfEnd If K=27 And MM Orange Pxlon S,R Orange PxlOn S+7,R PxlOn S,R+14 PxlOn S+7,R+14 IfEnd 7M-6->R 7N->S PxlOff 1,127 IfEnd If K=29 And Int (Mat F[N.M]/10)<>2 Then If Int (Mat F[N,M]/10)=0 Then If O>-9 Then Mat F[N,M]+10->Mat F[N,M] O-1->O Orange Text S+1,R+2,"x" IfEnd Else Mat F[N,M]-10->Mat F[N,M] O+1->O Orange Text S+1,R+1," " IfEnd Text 1,118,O (O<10 And O>-1)=>Text 1,122," " IfEnd If K=39 And Int (Mat F[N.M]/10)=0 Then If Mat F[N.M]=9 Then -1->Q Else If Mat F[N.M]>0 Then Q-1->Q Mat F[N.M]->T Green Text S+1,R," " Green Text S+1,R+2,T T+20->Mat F[N.M] Else For -1->K To 1 For -1->L To 1 If N+K>0 And N+K0 And M+LT T+20->Mat F[N+K,M+L] Q-1->Q Green Text S+1+7K,R+7L," " Green Text S+1+7K,R+2+7L,T IfEnd Next Next IfEnd IfEnd K=79=>Break IfEnd PxlOff 1,127 LpWhile Q>0 ClrText If Q=0 Then 7->Z:30->I Prog "~CLR" Text 31,38,"YOU WON IN" Text 31,86,V Else For 1->I To W For 1->J To H Mat F[J,I]->T (T<9 And T>0)=>Orange Text 7J+1,7I-4,T T=9=>Orange Text 7J+1,7I-4,"x" (T>9 And T<19)=>Orange Text 7J+1,7I-4,"/" Next Next IfEnd PxlOff 1,127 [[0]]->Mat F Do Getkey->K LpWhile K=0 CoordOn AxesOn