Estamos quase prontos para escrever o algoritmo tricolor. Precisamos apenas
da função scatter()
, bastante inspirada na primeira que
escrevemos para o problema de Hanoi
Separado. A assumir que a sua pilha intercalada esteja na vara do
meio
, espalhe os discos por todas as varas. Certifique-se de
usar move3()
uma quantidade par de vezes em cada nível
recursivo para garantir que os discos de baixo estejam na ordem correta.
Como pode ver, a situação inicial não é a esperada por
scatter()
. Primeiro tem que aplicar gather()
e
move3()
(duas vezes para pôr o trio do fundo na ordem
correta). Estes poucos passos mais a nova função scatter()
são
o suficiente para resolver inteiramente o problema de Hanoi Tricolor.