martes, 1 de marzo de 2011

Solución Animada De Las Torres de Hanói En Java

Animación que muestra la solución de las torres de Hanói de 1 ficha hasta 8 fichas, programa escrito en Java haciendo uso de la librería Java 2D para dibujar las imágenes y para efectos de animación la clase Timer del paquete javax.swing. El objetivo como todos sabemos es trasladar todos los elementos de la torre 1 a la torre 3 moviendo una ficha a la vez y ponerla solo en el vacío o en otra ficha mayor.

torres de hanoi java 2
El programa realiza la cantidad mínima de movimientos para la resolución de las torres de Hanói, esto es, si n es el numero de fichas la cantidad mínima de movimientos es 2n-1, por ejemplo si tenemos 8 fichas llegaremos a la solución en 255 movimientos.

torres de hanoi java

Para la solución de las torres de Hanói para su posterior animación  se utilizo la solución recursiva que se muestra a continuación.

public static void algoritmoHanoi(int n, int origen, int temporal, int destino) {
    if (n == 0) {
        return;
    }
    algoritmoHanoi(n - 1, origen, destino, temporal);
    System.out.println("Mover " + n + " de la torre " + origen + " a la torre " + destino + ".");
    algoritmoHanoi(n - 1, temporal, origen, destino);
}

Para la animación el reto esta en colocar correctamente las posiciones y con ayuda de un hilo (en este caso el mas sencillo de utilizar un Timer) que se encargue de cambiar las posiciones según los movimientos que debemos realizar.


30 comentarios:

  1. Hola, tienes algún ejemplo de administración de PostIts Pequeños recordatorios que se pueden pegar en pantalla o asistentes virtuales como el clipo de Word, con operaciones de juagar, dormir, duchar,etc.
    Estos son proyectos finales de Lab – 121 I/2011, si lo tienes haber si lo subes porfa chauuu.

    ResponderEliminar
  2. Muchisimas gracias amigo...

    ResponderEliminar
  3. en que se corre estos.rar

    ResponderEliminar
    Respuestas
    1. Este comentario ha sido eliminado por el autor.

      Eliminar
    2. A no bueno. xD y quiere programar. :S

      Eliminar
  4. Tu si ah.!!!
    Tec. Analista d Sistemas
    Deibys D. Chiroque M.
    9o ciclo Ing. Informática
    Universidad Nacional de Piura
    UNP - PERÚ

    ResponderEliminar
  5. gracias hermano muy buen aporte te dejo 10 puntos y un like

    ResponderEliminar
  6. Excelente trabajo, impecable... me pidieron este trabajo para inteligencia artificial, y estoy estudiando tu godigo para desarrollar el mio. Sera mucha molestias si lo documentas un poco mas, es que hay algunas cosas que no comprendo muy bien (novato)... te agradeceria muchisimo ;)

    ResponderEliminar
    Respuestas
    1. tdesvirgo001@hotmail.com este es mi correo por si lo necesitas

      Eliminar
  7. uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu esta padrisimoooooooooooooooooooo

    ResponderEliminar
  8. muchsisimas gracias broder esta padrisimo el programa, me imagino que debe aver tomado tiempo crear este programa!! gracias

    ResponderEliminar
  9. Excelente, le podría mejorar poniéndole un poco mas de velocidad.

    ResponderEliminar
  10. muy buen codigo de las torres

    ResponderEliminar
  11. las torres de hanoi podria ser una aplicacion para calular . por fa las torres de hanoi como podria ser codificado en android

    ResponderEliminar
  12. te lo agradeseria mucho si es lo antes posible gracias...........

    ResponderEliminar
  13. Muchas Gracias!!!! se te agradece un monton !! :)

    ResponderEliminar
  14. Muy buen trabajo, felicidades por compartir...

    ResponderEliminar

  15. Excelente demostracion grafica, asi viendolo paso a paso lo entendemos bien aquellos que necesitamos programar este algoritmo, en mi caso, necesito hacerlo en python.

    Gracias
    The Rojo...

    ResponderEliminar
  16. Felicidades, muy buen trabajo y muchas gracias por compartirlo.

    ResponderEliminar
    Respuestas
    1. alguien me puede ayudar con las torres de hanio... lo tengo q hacer en lenguaje c pero no lo logro encontrar
      sera q me podrian decir como va el codigo fuente para este juego en c
      se los agradeceria mucho

      Eliminar
  17. me ayudo bastamte gracias por la ayuda........

    ResponderEliminar
  18. que buen aporte, y esta muy bueno el proyecto.. solo queria preguntarte una cosa.. para esto no utilizaste formulario de java.. porque no aparece cuando estaba viendolo...

    ResponderEliminar

Deja tu comentario, agradecimiento, sugerencia o critica.