0: GoTo Sort End If End Select Sort: If MoveFighter = 0 Then SortEnd 7, 10 ''''对小卒排序 SortEnd 11, 12 ''''对空格排序 End If End Function Private Function MoveCaoCao() As Long ''''step1初始化下一步的数据 Dim i As Long For i = 1 To 12 ES(i) = bs(i) Next i MoveCaoCao = -1 ''''初始化返回值,-1代表不成功 ''''up按照规则,限制曹操不能向上移动 ''''If ES(11) = ES(1) - 8 And ES(12) = ES(11) + 1 Then '''' ES(1) = ES(1) - 4: ES(11) = ES(11) + 8: ES(12) = ES(12) + 8 '''' MoveCaoCao = 0 ''''end if ''''down If ES(11) = ES(1) + 8 And ES(12) = ES(11) + 1 Then ES(1) = ES(1) + 4: ES(11) = ES(11) - 8: ES(12) = ES(12) - 8 MoveCaoCao = 0: GoTo Sort End If ''''left If ES(11) = ES(1) - 1 And ES(12) = ES(11) + 4 And (ES(11) Mod 4) <> 0 Then ES(1) = ES(1) - 1: ES(11) = ES(11) + 2: ES(12) = ES(12) + 2 MoveCaoCao = 0: GoTo Sort End If ''''right If ES(11) = ES(1) + 2 And ES(12) = ES(11) + 4 And (ES(11) Mod 4) <> 1 Then ES(1) = ES(1) + 1: ES(11) = ES(11) - 2: ES(12) = ES(12) - 2 MoveCaoCao = 0: GoTo Sort End If ''''移动曹操以后,不需要重新进行排序 Sort: ''''Do nothing End Function Private Function MoveHtiger(MoveType As Long, id As Long) As Long ''''初始化下一步的数据 Dim i As Long For i = 1 To 12 ES(i) = bs(i) Next i MoveHtiger = -1 ''''设置初始值 Select Case MoveType Case 1 ''''up If ES(11) = ES(id) - 4 And ES(12) = ES(11) + 1 Then ES(id) = ES(id) - 4: ES(11) = ES(11) + 4: ES(12) = ES(12) + 4 MoveHtiger = 0: GoTo Sort End If Case 2 ''''down If ES(11) = ES(id) + 4 And ES(12) = ES(11) + 1 Then ES(id) = ES(id) + 4: ES(11) = ES(11) - 4: ES(12) = ES(12) - 4 MoveHtiger = 0: GoTo Sort End If Case 3 ''''left If ES(11) = ES(id) - 1 And ES(11) Mod 4 <> 0 Then ES(id) = ES(id) - 1: ES(11) = ES(11) + 2 MoveHtiger = 0: GoTo Sort End If If ES(12) = ES(id) - 1 And ES(12) Mod 4 <> 0 Then ES(id) = ES(id) - 1: ES(12) = ES(12) + 2 MoveHtiger = 0: GoTo Sort End If Case 4 ''''right If ES(11) = ES(id) + 2 And ES(11) Mod 4 <> 1 Then ES(id) = ES(id) + 1: ES(11) = ES(11) - 2 MoveHtiger = 0: GoTo Sort End If If ES(12) = ES(id) + 2 And ES(12) Mod 4 <> 1 Then ES(id) = ES(id) + 1: ES(12) = ES(12) - 2 MoveHtiger = 0: GoTo Sort End If End Select Sort: If MoveHtiger = 0 Then SortEnd 2, hnum + 1 ''''横放将领排序 SortEnd 11, 12 ''''空格排序 End If End Function Private Function MoveVtiger(MoveType As Long, id As Long) As Long ''''初始化下一步的数据 Dim i As Long For i = 1 To 12 ES(i) = bs(i) Next i MoveVtiger = -1 Select Case MoveType Case 1 ''''up If ES(11) = ES(id) - 4 Then ES(id) = ES(id) - 4: ES(11) = ES(11) + 8: MoveVtiger = 0: GoTo Sort End If If ES(12) = ES(id) - 4 Then ES(id) = ES(id) - 4: ES(12) = ES(12) + 8: MoveVtiger = 0: GoTo Sort End If Case 2 ''''down If ES(11) = ES(id) + 8 Then ES(id) = ES(id) + 4: ES(11) = ES(11) - 8: MoveVtiger = 0: GoTo Sort End If If ES(12) = ES(id) + 8 Then ES(id) = ES(id) + 4: ES(12) = ES(12) - 8: MoveVtiger = 0: GoTo Sort End If Case 3 ''''left If ES(11) = ES(id) - 1 And ES(12) = ES(11) + 4 And ES(11) Mod 4 <> 0 Then ES(id) = ES(id) - 1: ES(11) = ES(11) + 1: ES(12) = ES(12) + 1 MoveVtiger = 0: GoTo Sort End If Case 4 ''''right If ES(11) = ES(id) + 1 And ES(12) = ES(11) + 4 And ES(11) Mod 4 <> 1 Then &nb上一页 [1] [2] [3] [4] 下一页 |