Dim i As Integer'定義循環變量
Dim j As Integer
Dim step As Integer
Dim x(8) As Integer'定義壹個數組,用來存放隨機編號
Private Sub Command1_Click()?
init'初始化遊戲
Command1.Enabled = False'使開始按鈕失效
End Sub
Private Sub Form_Load()?
Randomize'起始隨機數產生器
End Sub
Sub init()'初始化遊戲子程序
For i = 0 To 7'隨機產生不重復的8個編號(從0到7)
a0: x(i)=Int(Rnd*8)
For j = 0 To i - 1
If x(i)=x(j) Then GoTo a0
Next
Next
For i = 0 To 7
Image1(i).Enabled = True'使Image1響應鼠標事件
Image1(x(i)).Picture = PictureClip1.GraphicCell(i)'讓圖片的8個單元分別賦予 8個Image控件
Next
Image1(8).Picture = LoadPicture(“”)'空位用於移動圖片
End Sub
Private Sub Image1_Click(Index As Integer)'註意索引值的運用
Select Case Index Mod 3'把9個Image控件分成三列
Case 0'當鼠標點擊第1列時
If Image1(Index + 1).Picture = LoadPicture(“”) Then'判斷右邊是否為空
Image1(Index + 1).Picture = Image1(Index).Picture'交換圖片
Image1(Index).Picture=LoadPicture(“”)win'測試是否拼圖成功
End If
Case 1'當鼠標點擊第2列時
If Image1(Index - 1).Picture = LoadPicture(“”)Then'判斷左邊是否為空
Image1(Index - 1).Picture = Image1(Index).Picture
Image1(Index).Picture=LoadPicture(“”)
win
End If
If Image1(Index + 1).Picture = LoadPicture(“”)Then'判斷右邊是否為空
Image1(Index + 1).Picture = Image1(Index).Picture
Image1(Index).Picture=LoadPicture(“”)
win
End If
Case 2'當鼠標點擊第3列時
If Image1(Index - 1).Picture = LoadPicture(“”)Then'判斷左邊是否為空
Image1(Index - 1).Picture = Image1(Index).Picture
Image1(Index).Picture=LoadPicture(“”)
win
End If
End Select
Select Case Index\ 3'把9個Image控件分成三行
Case 0'當鼠標點擊第1行時
If Image1(Index + 3).Picture = LoadPicture(“”)Then'判斷下邊是否為空
Image1(Index + 3).Picture = Image1(Index).Picture
Image1(Index).Picture=LoadPicture(“”)
win
End If
Case 1'當鼠標點擊第2行時
If Image1(Index - 3).Picture = LoadPicture(“”)Then'判斷上邊是否為空
Image1(Index - 3).Picture = Image1(Index).Picture
Image1(Index).Picture=LoadPicture(“”)
win
End If
If Image1(Index + 3).Picture = LoadPicture(“”)Then'判斷下邊是否為空
Image1(Index + 3).Picture = Image1(Index).Picture
Image1(Index).Picture=LoadPicture(“”)
win
End If
Case 2'當鼠標點擊第3行時
If Image1(Index - 3).Picture = LoadPicture(“”)Then'判斷上邊是否為空
Image1(Index - 3).Picture = Image1(Index).Picture
Image1(Index).Picture=LoadPicture(“”)
win
End If
End Select
End Sub
Sub win()'測試是否拼圖成功的子程序
Dim num As Integer
step=step + 1'步數加1
Label2.Caption= step
For i = 0 To 8'判斷圖塊是否全部就位
If Image1(i).Picture= PictureClip1.GraphicCell(i) Then num = num + 1
Next
If num ?=8 Then
MsgBox “妳真棒!”
For i=0 To 8
Image1 (i).Enabled=False'使之不響應鼠標事件
Next
Command1.Enabled=True'恢復命令按鈕
End If
End Sub