Ver Mensaje Individual
  #4 (permalink)  
Antiguo 19/10/2014, 09:38
Kritik
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 366
Antigüedad: 12 años, 7 meses
Puntos: 31
Respuesta: Torre de Hanoi sin RECURSIVIDAD EN JAVA codigo

A mí me ha quedado bien claro con la ayuda de Xerelo.
Ahora bien, si lo que no quieres es hacer ni 1 solo bucle... cógete uno de los muchos videos que ha en YouTube y traduce cada movimiento a 1 línea distinta de tu código.

Por ejemplo... para 1 torre de 6 piezas:
int palo1[]=new int{6};
int palo2[]=new int{6};
int palo3[]=new int{6};
palo1[0]=6
palo1[1]=5
palo1[2]=4
palo1[3]=3
palo1[4]=2
palo1[5]=1

Rellenando las 3 matrices con el número de tamaño de la pieza que lo contiene.
palo2[0]=0
palo2[1]=0
...
...
palo3[5]=0

y después quita el valor contenido en la matriz que almacena las piezas de 1 y la llevas a otra, línea a línea como si fuese movimiento a movimiento...

palo1[5]=0
palo3[0]=1
palo1[4]=0
palo2[0]=2

etc...

esta línea quita la pieza de menor tamaño de la posición más alta de palo1 y la pone en la posición más baja de palo 3. Quita la siguiente pieza de palo 1 y la coloca abajo del todo de palo 2.

Hazlo poniendo 1 línea para cada movimiento y así no tendrás recursividad ninguna.

Pero como tengas que hacer una torre de 10 piezas te vas al millón de líneas de código.

Precisamente lo bueno que tienen los programas es que pueden hacer cosas repetitivamente, el uso de bucles, etc.

En programación a un bucle no se le llama recursividad.

La recursividad en programación puede ser directa o indirecta. La recursividad directa es cuando una función se llama a sí misma y la recursividad indirecta es cuando una función llama a otra función y esa segunda función llama a la primera.

Ahora bien, si el artículo de Wikipedia que Xerelo ha indicado no te ayuda a como traducir lo que dice en el mismo a un código sin recursividad entonces tienes un problema.

Por otra parte si lo que quieres es que se te de el código para que tú solo tengas que copiar y pegar y no tengas que usar el cerebro que tienes... entonces también tienes un problema.