Código:
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);
}
}
}