Torres de hanoi

Iniciado por S1dD3xt35, 21 Marzo 2010, 01:20 AM

0 Miembros y 1 Visitante están viendo este tema.

S1dD3xt35

saludos  :) aqui les dejo un ejemplo de las torres de hanoi espero alguien le sirva  ;D


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace program_torres_de_hanoi_
{
    class Program
    {
       
       
        class torres
        {

            public int movimientos = 0;
            public void hanoi(int n, string origen, string auxiliar, string destino)
            {
               

                if (n == 1)
                {
                    Console.WriteLine("Mover un disco de " + origen + " a " + destino);
                    movimientos += 1;
                }
                else
                {
                    hanoi(n - 1, origen, destino, auxiliar);
                    Console.WriteLine("Mover un disco de " + origen + " a " + destino);
                    movimientos += 1;
                    hanoi(n - 1, auxiliar, origen, destino);
                }
               
            }
        }


        static void Main(string[] args)
        {

            string origen = "Torre 1 ORIGEN", auxiliar = "Torre 2 AUXILIAR", destino = "Torre 3 DESTINO";
            torres hanoi1 = new torres();
            int respuesta = 1;
            do
            {
                Console.Clear();
                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine("Torres de hanoi");
                Console.Write("Discos: ");
                int n = int.Parse(Console.ReadLine());
                hanoi1.hanoi(n, origen, auxiliar, destino);
                Console.WriteLine("Total de movimientos:" + hanoi1.movimientos);
                Console.ReadLine();
                Console.Write("\n\n\tMeter otro numero 1=Si  y 2=No: ");
                respuesta = int.Parse(Console.ReadLine());
            } while (respuesta == 1);
        }
    }
}