home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AMOS PD CD
/
amospdcd.iso
/
451-475
/
apd463
/
amos1.34_progs
/
minefield.amos
/
minefield.amosSourceCode
Wrap
AMOS Source Code
|
1993-01-17
|
4KB
|
181 lines
Rem ----- Minefield -----
'
' the numbers in the boxes tell you how many mines are next to
' the square you just clicked
'
Curs Off : Cls 0
'
Dim ARAY_X(100),ARAY_Y(100),ARAY_STAT(100),ARAY_C(100)
Global ARAY_STAT(),MZ,T,SWITCH,ARAY_C()
Reserve Zone 100
'
Box 10,10 To 110,110
For A=20 To 100 Step 10
Draw A,10 To A,110
Draw 10,A To 110,A
Next A
'
For B=10 To 100 Step 10
For A=10 To 100 Step 10
Inc V
Set Zone V,A,B To A+10,B+10
ARAY_X(V)=A+1 : ARAY_Y(V)=B+8 : ARAY_STAT=0
Next A
Next B
'
Ink 5,0
'
For N=1 To 15
ARAY_STAT(Rnd(99)+1)=1
Next N
'
Do
If Key State(69) Then FINISH
MZ=Mouse Zone
If MZ<>0 and Mouse Key=2 and ARAY_STAT(MZ)<2
If ARAY_C(MZ)=0
Ink 3,0
Text ARAY_X(MZ),ARAY_Y(MZ),"-"
ARAY_C(MZ)=1
CHKWIN
Ink 5,0
Else
Text ARAY_X(MZ),ARAY_Y(MZ)," "
ARAY_C(MZ)=0
End If
Wait 20
End If
If MZ<>0 and Mouse Key=1 and ARAY_STAT(MZ)<2
If ARAY_STAT(MZ)=1
Boom
Ink 3,0
For N=1 To 100
If ARAY_STAT(N)=1
Text ARAY_X(N),ARAY_Y(N),"*"
End If
Next N
Ink 2,0
Paper 0
Locate 3,16 : Print "HARD LUCK"
Else
T=0 : SWITCH=0
If MZ=1
TLC
End If
If MZ=10
TRC
End If
If MZ=91
BLC
End If
If MZ=100
BRC
End If
If MZ>1 and MZ<10
TR
End If
If MZ=11 or MZ=21 or MZ=31 or MZ=41 or MZ=51 or MZ=61 or MZ=71 or MZ=81
LR
End If
If MZ=20 or MZ=30 or MZ=40 or MZ=50 or MZ=60 or MZ=70 or MZ=80 or MZ=90
RR
End If
If MZ>91 and MZ<100
BR
End If
If SWITCH=0
REST
End If
S$=Str$(T)-Chr$(32)
Text ARAY_X(MZ),ARAY_Y(MZ),S$
ARAY_STAT(MZ)=2
CHKWIN
End If
End If
Loop
'
Procedure TLC
SWITCH=1
If ARAY_STAT(2)=1 Then Inc T
If ARAY_STAT(11)=1 Then Inc T
If ARAY_STAT(12)=1 Then Inc T
End Proc
Procedure TRC
SWITCH=1
If ARAY_STAT(9)=1 Then Inc T
If ARAY_STAT(19)=1 Then Inc T
If ARAY_STAT(20)=1 Then Inc T
End Proc
Procedure BLC
SWITCH=1
If ARAY_STAT(81)=1 Then Inc T
If ARAY_STAT(82)=1 Then Inc T
If ARAY_STAT(92)=1 Then Inc T
End Proc
Procedure BRC
SWITCH=1
If ARAY_STAT(89)=1 Then Inc T
If ARAY_STAT(90)=1 Then Inc T
If ARAY_STAT(99)=1 Then Inc T
End Proc
Procedure TR
SWITCH=1
If ARAY_STAT(MZ-1)=1 Then Inc T
If ARAY_STAT(MZ+1)=1 Then Inc T
If ARAY_STAT(MZ+9)=1 Then Inc T
If ARAY_STAT(MZ+10)=1 Then Inc T
If ARAY_STAT(MZ+11)=1 Then Inc T
End Proc
Procedure BR
SWITCH=1
If ARAY_STAT(MZ-1)=1 Then Inc T
If ARAY_STAT(MZ+1)=1 Then Inc T
If ARAY_STAT(MZ-9)=1 Then Inc T
If ARAY_STAT(MZ-10)=1 Then Inc T
If ARAY_STAT(MZ-11)=1 Then Inc T
End Proc
Procedure LR
SWITCH=1
If ARAY_STAT(MZ+1)=1 Then Inc T
If ARAY_STAT(MZ-9)=1 Then Inc T
If ARAY_STAT(MZ-10)=1 Then Inc T
If ARAY_STAT(MZ+10)=1 Then Inc T
If ARAY_STAT(MZ+11)=1 Then Inc T
End Proc
Procedure RR
SWITCH=1
If ARAY_STAT(MZ-1)=1 Then Inc T
If ARAY_STAT(MZ-10)=1 Then Inc T
If ARAY_STAT(MZ-11)=1 Then Inc T
If ARAY_STAT(MZ+9)=1 Then Inc T
If ARAY_STAT(MZ+10)=1 Then Inc T
End Proc
Procedure REST
If ARAY_STAT(MZ-1)=1 Then Inc T
If ARAY_STAT(MZ+1)=1 Then Inc T
If ARAY_STAT(MZ-9)=1 Then Inc T
If ARAY_STAT(MZ-10)=1 Then Inc T
If ARAY_STAT(MZ-11)=1 Then Inc T
If ARAY_STAT(MZ+9)=1 Then Inc T
If ARAY_STAT(MZ+10)=1 Then Inc T
If ARAY_STAT(MZ+11)=1 Then Inc T
End Proc
Procedure CHKWIN
CR=0 : TR=0
For N=1 To 100
If ARAY_STAT(N)=2
Inc CR
End If
If ARAY_C(N)=1
Inc TR
End If
Next N
If CR+TR=100
Paper 0
Locate 3,16 : Print "WELL DONE"
End If
End Proc
Procedure FINISH
Default
Edit
End Proc