level 2
肥月MC
楼主
RT..
这是快速配对游戏的代码。。求教每一行的意思。。那些定义什么的可以不用解释。谢谢各位大神!!!
!
Option Explicit
Private Arrange(0 To 15) As Integer '保存每个位置的图片
Private p1 As Integer, p2 As Integer '两次翻起的图象下标
Private FinishedNum As Integer '完成对数
Private Finished(0 To 15) As Boolean '已翻开的图像下标
Dim t As Integer
Private Sub Command1_Click() '游戏开始
Dim i As Integer
Dim j As Integer
Dim m As Integer
Command3.Enabled = False
FinishedNum = 0
p1 = -1
p2 = -1 '开始给每种图片随机摆放在2个位置,共16个位置8种图片
Randomize
For i = 0 To 15
Arrange(i) = -1
Next
For i = 0 To 7
For j = 0 To 1
Do
m = Int(Rnd * 16)
If Arrange(m) = -1 Then
Arrange(m) = i
Exit Do
End If
Loop
Next
Next
For i = 0 To 15
Image1(i).Picture = Image2(Arrange(i)).Picture
Finished(i) = False
Next
Command1.Enabled = False
Timer1.Enabled = True
End Sub
Private Sub Command2_Click() '退出游戏
Unload Me
End Sub
Private Sub Command3_Click() '看排行
frmScore.Show 1
End Sub
Private Sub Form_Load()
Dim i As Integer
For i = 0 To 15
Image1(i).Picture = ImageBack.Picture
Image1(i).Enabled = False
Next
End Sub
Private Sub Image1_Click(Index As Integer) '开始寻找配对
Dim i As Integer
Dim m As Integer
Dim n As Integer
Dim tt(0 To 2) As Integer
Dim l As Integer
Image1(Index).Picture = Image2(Arrange(Index)).Picture
Image1(Index).Enabled = False
If Not Timer2.Enabled Then
Timer2.Enabled = True
t = 0
End If
If p1 = 1 Then '翻开第一张
p1 = Index
Else '翻开第二张
p2 = Index
If Arrange(p1) <> Arrange(p2) Then '两张不一样
For i = 0 To 15
Image1(i).Enabled = False
Next
Timer3.Enabled = True
ImageFace = ImageNoSmile
Else '两张相同
FinishedNum = FinishedNum + 1
Finished(p1) = True
Finished(p2) = True
p1 = -1
p2 = -1
ImageFace = ImageSmile
If FinishedNum = 8 Then '如果全部完成
Timer2.Enabled = False
Command1.Enabled = True
Command1.Caption = "再来"
Command3.Enabled = True
Open App.Path & "\Record.txt" For Input As #1 '打开排行榜文件读以往成绩
l = -1
Do While Not EOF(1)
l = l + 1
Input #1, tt(l)
Loop
Close #1
If t < tt(2) Then '若成绩可进前三名,重新生成排行榜
Kill App.Path & "\Record.txt"
If t >= tt(1) Then tt(2) = t: MsgBox "完成,恭喜你成为第三名!", vbInformation
If t < tt(1) And t >= tt(0) Then tt(2) = tt(1): tt(1) = t: MsgBox "完成,恭喜你成为第二名!", vbInformation
If t < tt(0) Then tt(2) = tt(1): tt(1) = tt(0): tt(0) = t: MsgBox "完成,恭喜你成为第一名!", vbInformation
Open App.Path & "\Record.txt" For Output As #1
For l = 0 To 2
Write #1, tt(l),
Next
Close #1
Else
MsgBox "完成,你未进入前三名!", vbInformation
End If
End If
End If
End If
End Sub
Private Sub Timer1_Timer() '开始时随机放好的图片翻开给看3秒钟
Dim m As Integer
For m = 0 To 15
Image1(m).Picture = ImageBack.Picture
Image1(m).Enabled = True
Next m
Timer1.Enabled = False
End Sub
Private Sub Timer2_Timer() '游戏记时
t = t + 1
Label1.Caption = t
End Sub
Private Sub Timer3_Timer() '寻找不正确时图片会恢复底样
Dim i As Integer
For i = 0 To 15
If Not Finished(i) Then
Image1(i).Enabled = True
End If
Next
Image1(p1).Picture = ImageBack.Picture
Image1(p2).Picture = ImageBack.Picture
Timer3.Enabled = False
p1 = -1
p2 = -1
End Sub
2014年04月13日 07点04分
1
这是快速配对游戏的代码。。求教每一行的意思。。那些定义什么的可以不用解释。谢谢各位大神!!!
Option Explicit
Private Arrange(0 To 15) As Integer '保存每个位置的图片
Private p1 As Integer, p2 As Integer '两次翻起的图象下标
Private FinishedNum As Integer '完成对数
Private Finished(0 To 15) As Boolean '已翻开的图像下标
Dim t As Integer
Private Sub Command1_Click() '游戏开始
Dim i As Integer
Dim j As Integer
Dim m As Integer
Command3.Enabled = False
FinishedNum = 0
p1 = -1
p2 = -1 '开始给每种图片随机摆放在2个位置,共16个位置8种图片
Randomize
For i = 0 To 15
Arrange(i) = -1
Next
For i = 0 To 7
For j = 0 To 1
Do
m = Int(Rnd * 16)
If Arrange(m) = -1 Then
Arrange(m) = i
Exit Do
End If
Loop
Next
Next
For i = 0 To 15
Image1(i).Picture = Image2(Arrange(i)).Picture
Finished(i) = False
Next
Command1.Enabled = False
Timer1.Enabled = True
End Sub
Private Sub Command2_Click() '退出游戏
Unload Me
End Sub
Private Sub Command3_Click() '看排行
frmScore.Show 1
End Sub
Private Sub Form_Load()
Dim i As Integer
For i = 0 To 15
Image1(i).Picture = ImageBack.Picture
Image1(i).Enabled = False
Next
End Sub
Private Sub Image1_Click(Index As Integer) '开始寻找配对
Dim i As Integer
Dim m As Integer
Dim n As Integer
Dim tt(0 To 2) As Integer
Dim l As Integer
Image1(Index).Picture = Image2(Arrange(Index)).Picture
Image1(Index).Enabled = False
If Not Timer2.Enabled Then
Timer2.Enabled = True
t = 0
End If
If p1 = 1 Then '翻开第一张
p1 = Index
Else '翻开第二张
p2 = Index
If Arrange(p1) <> Arrange(p2) Then '两张不一样
For i = 0 To 15
Image1(i).Enabled = False
Next
Timer3.Enabled = True
ImageFace = ImageNoSmile
Else '两张相同
FinishedNum = FinishedNum + 1
Finished(p1) = True
Finished(p2) = True
p1 = -1
p2 = -1
ImageFace = ImageSmile
If FinishedNum = 8 Then '如果全部完成
Timer2.Enabled = False
Command1.Enabled = True
Command1.Caption = "再来"
Command3.Enabled = True
Open App.Path & "\Record.txt" For Input As #1 '打开排行榜文件读以往成绩
l = -1
Do While Not EOF(1)
l = l + 1
Input #1, tt(l)
Loop
Close #1
If t < tt(2) Then '若成绩可进前三名,重新生成排行榜
Kill App.Path & "\Record.txt"
If t >= tt(1) Then tt(2) = t: MsgBox "完成,恭喜你成为第三名!", vbInformation
If t < tt(1) And t >= tt(0) Then tt(2) = tt(1): tt(1) = t: MsgBox "完成,恭喜你成为第二名!", vbInformation
If t < tt(0) Then tt(2) = tt(1): tt(1) = tt(0): tt(0) = t: MsgBox "完成,恭喜你成为第一名!", vbInformation
Open App.Path & "\Record.txt" For Output As #1
For l = 0 To 2
Write #1, tt(l),
Next
Close #1
Else
MsgBox "完成,你未进入前三名!", vbInformation
End If
End If
End If
End If
End Sub
Private Sub Timer1_Timer() '开始时随机放好的图片翻开给看3秒钟
Dim m As Integer
For m = 0 To 15
Image1(m).Picture = ImageBack.Picture
Image1(m).Enabled = True
Next m
Timer1.Enabled = False
End Sub
Private Sub Timer2_Timer() '游戏记时
t = t + 1
Label1.Caption = t
End Sub
Private Sub Timer3_Timer() '寻找不正确时图片会恢复底样
Dim i As Integer
For i = 0 To 15
If Not Finished(i) Then
Image1(i).Enabled = True
End If
Next
Image1(p1).Picture = ImageBack.Picture
Image1(p2).Picture = ImageBack.Picture
Timer3.Enabled = False
p1 = -1
p2 = -1
End Sub