'add a listbox to form1 Private Sub Command1_Click() MOVEALL 13, 12, "A", "B", "C" End Sub Sub MOVEALL(ByVal TOTAL As Long, ByVal N As Long, ByVal A As String, ByVal B As String, ByVal C As String)'move the top n of total from A pass B to C If N = 1 Then MOVEONE TOTAL, 1, A, C Else MOVEALL TOTAL, N - 1, A, C, B MOVEONE TOTAL, N, A, C MOVEALL TOTAL, N - 1, B, A, C End If End SubSub MOVEONE(ByVal TOTAL As Long, ByVal N As Integer, ByVal X As String, ByVal Y As String) List1.AddItem "STEP " & List1.ListCount + 1 & ": " & Space(Len(str(2 ^ TOTAL - 1)) - Len(str(List1.ListCount + 1))) & " MOVE " & N & " FROM " & X & " TO " & Y End Sub
Private Sub Command1_Click()
MOVEALL 13, 12, "A", "B", "C"
End Sub
Sub MOVEALL(ByVal TOTAL As Long, ByVal N As Long, ByVal A As String, ByVal B As String, ByVal C As String)'move the top n of total from A pass B to C
If N = 1 Then
MOVEONE TOTAL, 1, A, C
Else
MOVEALL TOTAL, N - 1, A, C, B
MOVEONE TOTAL, N, A, C
MOVEALL TOTAL, N - 1, B, A, C
End If
End SubSub MOVEONE(ByVal TOTAL As Long, ByVal N As Integer, ByVal X As String, ByVal Y As String)
List1.AddItem "STEP " & List1.ListCount + 1 & ": " & Space(Len(str(2 ^ TOTAL - 1)) - Len(str(List1.ListCount + 1))) & " MOVE " & N & " FROM " & X & " TO " & Y
End Sub