''---------------------------------------------------------------------
''
''扫雷程序源代码 (这个程序只完成了主要的部份,其他细节我想你能完成了.)
''
''
''扫雷程序最难的部份是在于如何自动打开空白区了
''我以前是用“堆栈”的方式进行判断来打开的,
''就是把要判断的坐标压入用集合模拟的堆栈区,然后再逐一弹出进行判断.
''用这种方式一是要用到集合来做堆栈,二是编程烦琐
''我想了很长时间,终于想到另外一种方法,也就是现在用的这种方法
''我暂时称它为"扫描"方法吧,因为它正是用的扫描原理来打开空白区的
''"扫描"方法一是速度快,没有用到集合,另外就是编程方便,易于读懂程序.
''我个人对这种方法比较喜欢的,我觉得它是一个很新的思路(呵呵 别笑我笨啊)
''
''你可以任意复制或修改以下代码以满足你的需要,但请注明其出处
''任何问题可以和我联系呀! Email: ZMSPU@163.COM
''
'' CopyRight (C) 2003 ZMSPU 小小数点敬赠
''-----------------------------------------------------------------------
''标志说明
'' 0 ~ 9 未打开的
'' -1 ~ -9 已打开的
'' 10 雷
'' 11 已打开的空(未判断)
'' 12 已打开的空(已判断)
'' 13 标记过的
'' 14 问号
''
Dim What(1 To 30, 1 To 16) As Long ''点
Dim Save(1 To 30, 1 To 16) As Long ''存
Dim mX As Long
Dim mY As Long ''坐标
Dim mTime As Long
Dim MineFlag As Long ''标记雷
Dim OpenFlag As Long ''已打开的
Dim NowWidth As Long
Dim NowHeight As Long
Dim TotMine As Long ''总雷数
Private Sub Command1_Click()
Timer1.Enabled = True
Label2 = "00:00"
Label1 = TotMine
Label3 = "加油哦,祝你好运!!!"
Picture1.Enabled = True
For X = 0 To NowWidth - 1
For Y = 0 To NowHeight - 1
Picture1.PaintPicture image1(9).Picture, X, Y
Next
Next
ClearStart NowWidth, NowHeight, TotMine
WriteNumber NowWidth, NowHeight
End Sub
Private Sub Command2_Click()
If Command2.Caption = "显示源代码" Then
Command2.Caption = "隐藏源代码"
Frame2.Visible = True
Else
Command2.Caption = "显示源代码"
Frame2.Visible = False
End If
End Sub
Private Sub Form_Load(