Cómo resolver torres de Hanoi con restricciones adicionales

Solo necesita seguir la misma idea para crear un algoritmo que resuelva ese problema.

Su código comienza con la idea de cómo mover el disco N de la clavija a la clavija utilizando una tempPeg.

La definición recursiva es mover discos N-1 de Peg tempPeg aPeg. Todos estos movimientos no interferirán con el disco N sin mover y dejarán el toPeg libre. Mueva el disco N (dePeg-> aPeg) y luego mueva los discos N-1 de tempPeg a toPeg. Como todos son más pequeños que N, estás a salvo.

Por lo tanto, debe agregar más casos, al menos, encontrar una solución. Si desea mover N discos de A a C usando B como temp. Si N = 1. A-> B, B-> C son tus movimientos. De lo contrario, divida sus movimientos de discos N-1 de A a C. A-> B. N-1 de C a A. B-> C. N-1 A a C.

http://g.recordit.co/4enpMkQ5Ep.gif (sin restricciones)

http://g.recordit.co/8Swy1CBAdJ.gif (evitando movimientos A-> C, C-> A)

Forzar solo movimientos de clavija adyacentes aumentará mucho la cantidad de movimientos necesarios.

discos, # movimientos sin restricciones, # movimientos evitando CA y CA
1,1,2
2,3,8
3,7,26
4,15,80
5,31,242
6,63,728
7,127,2186
8.255,6560