home *** CD-ROM | disk | FTP | other *** search
/ AMOS PD CD / amospdcd.iso / 451-475 / apd463 / amos1.34_progs / minefield.amos / minefield.amosSourceCode
AMOS Source Code  |  1993-01-17  |  4KB  |  181 lines

  1. Rem ----- Minefield -----
  2. '
  3. ' the numbers in the boxes tell you how many mines are next to 
  4. ' the square you just clicked
  5. '
  6. Curs Off : Cls 0
  7. '
  8. Dim ARAY_X(100),ARAY_Y(100),ARAY_STAT(100),ARAY_C(100)
  9. Global ARAY_STAT(),MZ,T,SWITCH,ARAY_C()
  10. Reserve Zone 100
  11. '
  12. Box 10,10 To 110,110
  13. For A=20 To 100 Step 10
  14.    Draw A,10 To A,110
  15.    Draw 10,A To 110,A
  16. Next A
  17. '
  18. For B=10 To 100 Step 10
  19.    For A=10 To 100 Step 10
  20.       Inc V
  21.       Set Zone V,A,B To A+10,B+10
  22.       ARAY_X(V)=A+1 : ARAY_Y(V)=B+8 : ARAY_STAT=0
  23.    Next A
  24. Next B
  25. '
  26. Ink 5,0
  27. '
  28. For N=1 To 15
  29.    ARAY_STAT(Rnd(99)+1)=1
  30. Next N
  31. '
  32. Do 
  33.    If Key State(69) Then FINISH
  34.    MZ=Mouse Zone
  35.    If MZ<>0 and Mouse Key=2 and ARAY_STAT(MZ)<2
  36.       If ARAY_C(MZ)=0
  37.          Ink 3,0
  38.          Text ARAY_X(MZ),ARAY_Y(MZ),"-"
  39.          ARAY_C(MZ)=1
  40.          CHKWIN
  41.          Ink 5,0
  42.       Else 
  43.          Text ARAY_X(MZ),ARAY_Y(MZ)," "
  44.          ARAY_C(MZ)=0
  45.       End If 
  46.       Wait 20
  47.    End If 
  48.    If MZ<>0 and Mouse Key=1 and ARAY_STAT(MZ)<2
  49.       If ARAY_STAT(MZ)=1
  50.          Boom 
  51.          Ink 3,0
  52.          For N=1 To 100
  53.             If ARAY_STAT(N)=1
  54.                Text ARAY_X(N),ARAY_Y(N),"*"
  55.             End If 
  56.          Next N
  57.          Ink 2,0
  58.          Paper 0
  59.          Locate 3,16 : Print "HARD LUCK"
  60.       Else 
  61.          T=0 : SWITCH=0
  62.          If MZ=1
  63.             TLC
  64.          End If 
  65.          If MZ=10
  66.             TRC
  67.          End If 
  68.          If MZ=91
  69.             BLC
  70.          End If 
  71.          If MZ=100
  72.             BRC
  73.          End If 
  74.          If MZ>1 and MZ<10
  75.             TR
  76.          End If 
  77.          If MZ=11 or MZ=21 or MZ=31 or MZ=41 or MZ=51 or MZ=61 or MZ=71 or MZ=81
  78.             LR
  79.          End If 
  80.          If MZ=20 or MZ=30 or MZ=40 or MZ=50 or MZ=60 or MZ=70 or MZ=80 or MZ=90
  81.             RR
  82.          End If 
  83.          If MZ>91 and MZ<100
  84.             BR
  85.          End If 
  86.          If SWITCH=0
  87.             REST
  88.          End If 
  89.          S$=Str$(T)-Chr$(32)
  90.          Text ARAY_X(MZ),ARAY_Y(MZ),S$
  91.          ARAY_STAT(MZ)=2
  92.          CHKWIN
  93.       End If 
  94.    End If 
  95. Loop 
  96. '
  97. Procedure TLC
  98.    SWITCH=1
  99.    If ARAY_STAT(2)=1 Then Inc T
  100.    If ARAY_STAT(11)=1 Then Inc T
  101.    If ARAY_STAT(12)=1 Then Inc T
  102. End Proc
  103. Procedure TRC
  104.    SWITCH=1
  105.    If ARAY_STAT(9)=1 Then Inc T
  106.    If ARAY_STAT(19)=1 Then Inc T
  107.    If ARAY_STAT(20)=1 Then Inc T
  108. End Proc
  109. Procedure BLC
  110.    SWITCH=1
  111.    If ARAY_STAT(81)=1 Then Inc T
  112.    If ARAY_STAT(82)=1 Then Inc T
  113.    If ARAY_STAT(92)=1 Then Inc T
  114. End Proc
  115. Procedure BRC
  116.    SWITCH=1
  117.    If ARAY_STAT(89)=1 Then Inc T
  118.    If ARAY_STAT(90)=1 Then Inc T
  119.    If ARAY_STAT(99)=1 Then Inc T
  120. End Proc
  121. Procedure TR
  122.    SWITCH=1
  123.    If ARAY_STAT(MZ-1)=1 Then Inc T
  124.    If ARAY_STAT(MZ+1)=1 Then Inc T
  125.    If ARAY_STAT(MZ+9)=1 Then Inc T
  126.    If ARAY_STAT(MZ+10)=1 Then Inc T
  127.    If ARAY_STAT(MZ+11)=1 Then Inc T
  128. End Proc
  129. Procedure BR
  130.    SWITCH=1
  131.    If ARAY_STAT(MZ-1)=1 Then Inc T
  132.    If ARAY_STAT(MZ+1)=1 Then Inc T
  133.    If ARAY_STAT(MZ-9)=1 Then Inc T
  134.    If ARAY_STAT(MZ-10)=1 Then Inc T
  135.    If ARAY_STAT(MZ-11)=1 Then Inc T
  136. End Proc
  137. Procedure LR
  138.    SWITCH=1
  139.    If ARAY_STAT(MZ+1)=1 Then Inc T
  140.    If ARAY_STAT(MZ-9)=1 Then Inc T
  141.    If ARAY_STAT(MZ-10)=1 Then Inc T
  142.    If ARAY_STAT(MZ+10)=1 Then Inc T
  143.    If ARAY_STAT(MZ+11)=1 Then Inc T
  144. End Proc
  145. Procedure RR
  146.    SWITCH=1
  147.    If ARAY_STAT(MZ-1)=1 Then Inc T
  148.    If ARAY_STAT(MZ-10)=1 Then Inc T
  149.    If ARAY_STAT(MZ-11)=1 Then Inc T
  150.    If ARAY_STAT(MZ+9)=1 Then Inc T
  151.    If ARAY_STAT(MZ+10)=1 Then Inc T
  152. End Proc
  153. Procedure REST
  154.    If ARAY_STAT(MZ-1)=1 Then Inc T
  155.    If ARAY_STAT(MZ+1)=1 Then Inc T
  156.    If ARAY_STAT(MZ-9)=1 Then Inc T
  157.    If ARAY_STAT(MZ-10)=1 Then Inc T
  158.    If ARAY_STAT(MZ-11)=1 Then Inc T
  159.    If ARAY_STAT(MZ+9)=1 Then Inc T
  160.    If ARAY_STAT(MZ+10)=1 Then Inc T
  161.    If ARAY_STAT(MZ+11)=1 Then Inc T
  162. End Proc
  163. Procedure CHKWIN
  164.    CR=0 : TR=0
  165.    For N=1 To 100
  166.       If ARAY_STAT(N)=2
  167.          Inc CR
  168.       End If 
  169.       If ARAY_C(N)=1
  170.          Inc TR
  171.       End If 
  172.    Next N
  173.    If CR+TR=100
  174.       Paper 0
  175.       Locate 3,16 : Print "WELL DONE"
  176.    End If 
  177. End Proc
  178. Procedure FINISH
  179.    Default 
  180.    Edit 
  181. End Proc