|
Rem === 騎士走路問題 ===
Rem === 中斷執行請按Esc鍵
Dim a, b
Dim n As Integer
Private Sub CommandButton1_Click()
a = Array(2, 1, -1, -2, -2, -1, 1, 2)
b = Array(1, 2, 2, 1, -1, -2, -2, -1)
For i = 1 To 5
For j = 1 To 5
Cells(i, j) = 0
Next j
Next i
n = 0
Cells(3, 3) = 1
Call try(2, 3, 3)
End Sub
Sub prt()
For i = 1 To 5
For j = 1 To 5
Cells(i + n * 6, j + 6) = Cells(i, j)
Next j
Next i
n = n + 1
End Sub
Sub try(i, x, y)
For k = 0 To 7
u = x + a(k)
v = y + b(k)
If u > 0 And u < 6 And v > 0 And v < 6 Then
If Cells(u, v) = 0 Then
Cells(u, v) = i
If i < 25 Then
Call try(i + 1, u, v)
Else
Call prt
End If
Cells(u, v) = 0
End If
End If
Next k
End Sub
|