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.
Assumindo que 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 você pode ver, a situação inicial não é a esperada por
scatter()
. Primeiro você tem que aplicar
gather()
e move3()
(duas vezes para colocar
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.