VB 版 (精华区)
发信人: zxfsnow (最近睡眠太少), 信区: VB
标 题: 扫雷
发信站: 哈工大紫丁香 (2000年06月07日20:00:08 星期三), 转信
发信人: zhch (zhch from nju), 信区: VB
标 题: 扫雷
发信站: NJU Lily BBS (Sat Mar 20 18:12:38 1999), 站内信件
c = "Form1"
MaxButton = 0 'False
MinButton = 0 'False
ScaleHeight = 3060
ScaleWidth = 3075
StartUpPosition = 3 'Windows Default
Begin VB.CommandButton C
Height = 300
Index = 100
Left = -390
TabIndex = 0
Top = 0
Width = 300
End
End
Attribute VB_Name = "XX1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
DefLng A-Z
Dim S(-1 To 10, -1 To 10), M(-1 To 10, -1 To 10) As Boolean
Dim Opened(-1 To 10, -1 To 10) As Boolean, NNN, T!
Private Sub C_Click(Index As Integer)
If Abs(Timer - T!) > 1000 Then T! = Timer
C(100).SetFocus
X = Index Mod 10
Y = Index \ 10
Dig X, Y
End Sub
Private Sub C_MouseUp(Index As Integer, Button As Integer, Shift As Integer,
X As Single, Y As Single)
X = Index Mod 10
Y = Index \ 10
If Button = 2 Then
M(X, Y) = Not M(X, Y)
If M(X, Y) Then C(Index).Caption = "M" Else C(Index).Caption = ""
End If
End Sub
Private Sub Form_Load()
Randomize Timer
For n = 0 To 99
X = n Mod 10
Y = n \ 10
Load C(n)
C(n).Left = X * 300
C(n).Top = Y * 300
C(n).Visible = True
Line (X * 300, Y * 300)-Step(270, 270), 0, B
Next n
For n = 1 To 10
Do
X = Int(Rnd * 10)
Y = Int(Rnd * 10)
CurrentX = X * 300 + 90
CurrentY = Y * 300 + 40
Print "X"
Loop Until S(X, Y) = 0
S(X, Y) = -1
Next n
For X = 0 To 9
For Y = 0 To 9
n = X + Y * 10
If S(X, Y) = 0 Then
p = 0
For dx = X - 1 To X + 1
For dy = Y - 1 To Y + 1
If S(dx, dy) = -1 Then p = p + 1
Next dy
Next dx
S(X, Y) = p
CurrentX = X * 300 + 90
CurrentY = Y * 300 + 40
If p > 0 Then Print Chr(p + 48)
End If
Next Y
Next X
End Sub
Sub Dig(X, Y)
If X < 0 Or X > 9 Or Y < 0 Or Y > 9 Or M(X, Y) Then Exit Sub
n = X + Y * 10
p = S(X, Y)
If Opened(X, Y) Then Exit Sub Else Opened(X, Y) = True
Unload C(n)
NNN = NNN + 1
If NNN >= 90 Then MsgBox "You win!" + vbCrLf + "Your time is " & Int(Timer -
T!) & "s": End
Select Case p
Case -1
MsgBox "Game Over!"
End
Case 0
For dx = X - 1 To X + 1
For dy = Y - 1 To Y + 1
Dig dx, dy
Next dy
Next dx
End Select
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X2 As Single, Y
2 As Single)
X = X2 \ 300: Y = Y2 \ 300
If Opened(X, Y) And S(X, Y) > 0 Then
p = S(X, Y)
q = 0
For dx = X - 1 To X + 1
For dy = Y - 1 To Y + 1
If M(dx, dy) Then q = q + 1
Next dy
Next dx
If q = p Then
For dx = X - 1 To X + 1
For dy = Y - 1 To Y + 1
Dig dx, dy
Next dy
Next dx
End If
End If
End Sub
--
以科计为本,以产业报国!
超越自我,飞跃无限!
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.235.249]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.255毫秒