Private Sub MgPath(xi As Integer, yi As Integer, xe As Integer, ye As Integer)
Dim st(35) As zhan Dim i, j, k, di, find As Integer Dim Top As Integer Top = -1 Top = Top + 1 st(Top).i = xi st(Top).j = yi st(Top).di = -1 mg(1, 1) = -1
Do While (Top > -1)
i = st(Top).i j = st(Top).j di = st(Top).di
If (i = xe And j = ye) Then
For k = 0 To Top Print st(k).i, st(k).j Next Exit Sub End If
find = 0
Do While (di < 4 And find = 0)
di = di + 1 Select Case di Case 0: i = st(Top).i - 1 j = st(Top).j Case 1: i = st(Top).i j = st(Top).j + 1 Case 2: i = st(Top).i + 1 j = st(Top).j Case 3: i = st(Top).i j = st(Top).j - 1 End Select If mg(i, j) = 0 Then find = 1 Loop
If find = 1 Then
st(Top).di = di Top = Top + 1 st(Top).i = i st(Top).j = j st(Top).di = -1 mg(i, j) = -1 Else mg(st(Top).i, st(Top).j) = 0 Top = Top - 1 End If Loop End Sub |
06-25
04-04
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交