Bonjour

Je me suis acheté des tours de Hanoi en bois
Après trois jours de tatillonnage sur plus de vingt pages de brouillon j'ai enfin réussi à retrouver par moi même un morceau de l'algorithme général de récursion déplaçant les huit disques de la tour 1 à la tour 3, sans aide sur internet aucune.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
T0 = [ 0, 1, 2, 3, 4, 5, 6, 7 ]
#Disques de diamêtres 0 à 7, empilés du plus petit sur le plus grand
T1 = [ [],[],[],[],  [],[],[],[] ]
T2 = [ [],[],[],[],  [],[],[],[] ]
i=0
j=0
k=0
def move(i, j, k):
  if i == j :
    if k % 2 == 0:
      T0[i] = []
      T2[i] = i
    else:
      T0[i] = []
      T1[i] = i
  else:
    move(0, j-1, k-1)
    move(j, j, k)
    move(0, j-1, k-1)
 
move(0, 7, 2)
#Déplace et empile un par un les cylindres 0 à 7 sur la tour 2
# (jamais un plus grand sur un plus petit)
# en t'aidant de la tour 1
print(T0) ; print(T1) ; print(T2)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
[[], [], [], [], [], [], [], []]
[0, [], 2, [], 4, [], 6, []]
[[], 1, [], 3, [], 5, [], 7]

Le résultat imprimé par mon Notebook Jupiter semble indiquer que le travail est encore fait à moitié.
Manuellement je maîtrise maintenant parfaitement les 255 déplacements de disques, ce qui n'est pas encore le cas de mon ordinateur.
Je me suis alors replongé le crayon à la main pour chercher la route récursive manquante mais là honnêtement je sollicite votre aide

Merci !