这个代码时什么意思?
蜗牛哦 2005-05-09 03:48:21
下面是拼图游戏的全部代码,下面这几段代码是什么意思?
谢谢!
Option Explicit
Dim ImageID(8) As Integer '记录图片排列顺序的数组
Dim Position As Integer '被点击的图片位置
Dim XPosition As Integer '空图片的位置
Dim MoveTimes As Integer '记录移动次数
Dim CalPosition As Integer '用于计算位置
Dim Started As Boolean
Dim Win As Boolean
Dim pic(8) As Picture
Private Sub Form_Load()
Dim i As Integer
For i = 0 To 8
Set pic(i) = Picture1(i).Picture
Next
End Sub
Private Sub Command1_Click()
Dim i As Integer
Dim Temp(8) As Integer
Dim ChosenNumber As Integer
For i = 0 To 8
Temp(i) = i
Next
Randomize (Timer)
For i = 8 To 0 Step -1 ------- 为什么要递减呢?
ChosenNumber = Int(i * Rnd)
ImageID(8 - i) = Temp(ChosenNumber)
Temp(ChosenNumber) = Temp(i)
Next
For i = 0 To 8
Picture1(i).Picture = pic(ImageID(i))
If ImageID(i) = 8 Then XPosition = i
Next
Started = True
MoveTimes = 0
End Sub
Private Sub Picture1_Click(Index As Integer)
Dim i As Integer
Dim Response As Integer
Position = Index
If Started = False Then Exit Sub
If ((Position <> 0) And (Position <> 3) And (Position <> 6)) Then ----以下几个类似的这是什么意思?
CalPosition = Position - 1
If (CalPosition = XPosition) Then CVale
End If
If ((Position <> 2) And (Position <> 5) And (Position <> 8)) Then
CalPosition = Position + 1
If (CalPosition = XPosition) Then CVale
End If
If (Position >= 3) Then
CalPosition = Position - 3
If (CalPosition = XPosition) Then CVale
End If
If (Position <= 5) Then
CalPosition = Position + 3
If (CalPosition = XPosition) Then CVale
End If
Win = True
For i = 0 To 7
If (ImageID(i) <> i) Then Win = False
If Win = False Then Exit For
Next
If (Win = True) Then
MsgBox "恭喜恭喜!你很聪明。" & vbCrLf & "(共移动" & MoveTimes & "次)", vbOKOnly, "恭喜!"
Started = False
End If
End Sub
Sub CVale()
Picture1(CalPosition).Picture = Picture1(Position).Picture
ImageID(CalPosition) = ImageID(Position)
Picture1(Position).Picture = pic(8)
ImageID(Position) = 8
XPosition = Position
MoveTimes = MoveTimes + 1
End Sub