用VB帮忙做一个小游戏
发布网友
发布时间:2022-05-29 23:26
我来回答
共1个回答
热心网友
时间:2024-10-12 12:50
'添加一个名为label1的标签控件,并将其index设为0;再添加一个名为command1的按钮控件
Dim a(1 To 9) As Boolean
Dim win As Boolean, begin As Boolean, haveload As Boolean, start As Boolean
Private Sub Command1_Click()
start = True: begin = False
For i = 1 To 9
a(i) = False
Next i
Form_Load
End Sub
Private Sub Form_Load()
a(9) = True
Label1(0).Visible = False
Me.Height = 4400
Me.Width = 4000
Scale (0, 0)-(3, 3.3)
If haveload = False Then
haveload = True: start = True
Command1.Top = 3: Command1.Left = 2
Command1.Width = 1: Command1.Height = 0.3
Command1.Caption = "开始"
For i = 1 To 9
Load Label1(i)
Next i
End If
For i = 1 To 9
Label1(i).Height = 1
Label1(i).Width = 1
Label1(i).Visible = True
Label1(i).Top = (i - 1) \ 3
Label1(i).Left = (i - 1) Mod 3
Label1(i).Caption = Str(i)
Label1(i).BackColor = QBColor(i)
Label1(i).FontBold = True
Label1(i).FontSize = 40
Next i
Label1(9).Caption = "": Label1(9).BackColor = vbWhite
Randomize
For i = 1 To 500
r% = Int(9 * Rnd) + 1
Call Label1_Click(r)
Next i
begin = True
End Sub
Private Sub Label1_Click(index As Integer)
Dim x1 As Integer, y1 As Integer
If start = True Then
If a(index) = False Then
x1 = (index - 1) Mod 3: y1 = (index - 1) \ 3
If x1 - 1 > -0.2 Then
If a(x1 + y1 * 3) = True Then Call yidong(x1 + y1 * 3, index)
End If
If x1 + 1 < 2.2 Then
If a(x1 + y1 * 3 + 2) = True Then Call yidong(x1 + y1 * 3 + 2, index)
End If
If y1 - 1 > -0.2 Then
If a(x1 + 1 + (y1 - 1) * 3) = True Then Call yidong(x1 + (y1 - 1) * 3 + 1, index)
End If
If y1 + 1 < 2.2 Then
If a(x1 + 1 + (y1 + 1) * 3) = True Then Call yidong(x1 + 1 + (y1 + 1) * 3, index)
End If
End If
win = True
For i = 1 To 8
If Val(Label1(i).Caption) <> i Then win = False
Next i
If win = True And begin = True Then MsgBox ("恭喜你成功了"): begin = False: start = False
End If
End Sub
Sub yidong(x, index)
Label1(0).Caption = Label1(index).Caption
Label1(index).Caption = Label1(x).Caption
Label1(x).Caption = Label1(0).Caption
a(index) = True: a(x) = False
Label1(0).BackColor = Label1(index).BackColor
Label1(index).BackColor = Label1(x).BackColor
Label1(x).BackColor = Label1(0).BackColor
End Sub
热心网友
时间:2024-10-12 12:50
'添加一个名为label1的标签控件,并将其index设为0;再添加一个名为command1的按钮控件
Dim a(1 To 9) As Boolean
Dim win As Boolean, begin As Boolean, haveload As Boolean, start As Boolean
Private Sub Command1_Click()
start = True: begin = False
For i = 1 To 9
a(i) = False
Next i
Form_Load
End Sub
Private Sub Form_Load()
a(9) = True
Label1(0).Visible = False
Me.Height = 4400
Me.Width = 4000
Scale (0, 0)-(3, 3.3)
If haveload = False Then
haveload = True: start = True
Command1.Top = 3: Command1.Left = 2
Command1.Width = 1: Command1.Height = 0.3
Command1.Caption = "开始"
For i = 1 To 9
Load Label1(i)
Next i
End If
For i = 1 To 9
Label1(i).Height = 1
Label1(i).Width = 1
Label1(i).Visible = True
Label1(i).Top = (i - 1) \ 3
Label1(i).Left = (i - 1) Mod 3
Label1(i).Caption = Str(i)
Label1(i).BackColor = QBColor(i)
Label1(i).FontBold = True
Label1(i).FontSize = 40
Next i
Label1(9).Caption = "": Label1(9).BackColor = vbWhite
Randomize
For i = 1 To 500
r% = Int(9 * Rnd) + 1
Call Label1_Click(r)
Next i
begin = True
End Sub
Private Sub Label1_Click(index As Integer)
Dim x1 As Integer, y1 As Integer
If start = True Then
If a(index) = False Then
x1 = (index - 1) Mod 3: y1 = (index - 1) \ 3
If x1 - 1 > -0.2 Then
If a(x1 + y1 * 3) = True Then Call yidong(x1 + y1 * 3, index)
End If
If x1 + 1 < 2.2 Then
If a(x1 + y1 * 3 + 2) = True Then Call yidong(x1 + y1 * 3 + 2, index)
End If
If y1 - 1 > -0.2 Then
If a(x1 + 1 + (y1 - 1) * 3) = True Then Call yidong(x1 + (y1 - 1) * 3 + 1, index)
End If
If y1 + 1 < 2.2 Then
If a(x1 + 1 + (y1 + 1) * 3) = True Then Call yidong(x1 + 1 + (y1 + 1) * 3, index)
End If
End If
win = True
For i = 1 To 8
If Val(Label1(i).Caption) <> i Then win = False
Next i
If win = True And begin = True Then MsgBox ("恭喜你成功了"): begin = False: start = False
End If
End Sub
Sub yidong(x, index)
Label1(0).Caption = Label1(index).Caption
Label1(index).Caption = Label1(x).Caption
Label1(x).Caption = Label1(0).Caption
a(index) = True: a(x) = False
Label1(0).BackColor = Label1(index).BackColor
Label1(index).BackColor = Label1(x).BackColor
Label1(x).BackColor = Label1(0).BackColor
End Sub