Nous sommes presque prêts à écrire l'algorithme entier des tours
tricolores. Il ne nous manque plus qu'une fonction separe()
,
très inspirée de la première que nous avions écrite pour le problème des Tours de Hanoï
séparées. En supposant que votre tour interclassée se trouve sur le
piquet mid
, il faut répartir les disques sur tous les
piquets. Assurez-vous d'utiliser la fonction move3
un nombre
pair de fois à chaque étage récursif afin que les disques du triplet du bas
soient dans le bon ordre.
Comme vous pouvez le voir, la situation initiale n'est pas celle attendue
par la méthode separe()
. Il faut auparavant utiliser les
méthodes gather()
puis move3()
(deux fois pour que
le triplet du bas soit dans le bon ordre). Ces quelques étapes suivies de la
fonction separe()
suffisent à résoudre intégralement le
problème des tours tricolores de Hanoï.