PROGRAMA DE TORRES DE HANOI

ISMAEL ELICEA LOPEZ
14 de Noviembre del 2004
ALGUIEN ME PODRIA MANDAR EL PROGRAMA EN C++ DE LAS TORRES DE HANOI POR FAVOR...

noel solw
14 de Noviembre del 2004
Te envio el programa de Hanoi "no recursivo".
Si lo quieres recursivo, avisame.

// programa : Hanoi no recursivo
// borland c++ for windows - ver 4.5
// 10/4/2004

#include <iostream.h>
#include <iomanip.h>
#include <conio.h>

const int MAX = 10;
int a = 0,b = 1,c = 2 ,n = 0,
p[3],x[3][MAX];

void GetDim()
{
while(n < 1 || n > MAX)
{
cout << "entre el numero de discos (0 < n <= 10) : ";
cin >> n;
}
cout << endl << endl;
} // GET DIM

void Init()
{
if(n%2) // para numero de aros pares, rotacion inversa
{
b = 2;
c = 1;
}
for(int i = 0;i < n;i++)
x[0][i] = n-i;
p[0] = n-1;
p[1] = p[2] = -1;
} // INIT

void Show()
{
for(int i = 0;i < 3;i++)
{
cout << "[" << char('a'+i) << "] : ";
for(int j = 0;j < n;j++)
{
cout << setw(3);
if(x[i][j])
cout << x[i][j];
else
cout << '.';
}
cout << endl;
}
cout << endl;
getch();
} // SHOW

void Rotation()
{
int holder = a;
a = b;
b = c;
c = holder;
} // ROTATION

void Move(int source,int target)
{
x[target][++p[target]] = x[source][p[source]];
x[source][p[source]--] = 0;
} // MOVE

void Process()
{
Show();
for(;;)
{
Move(a,b);
Show();
if(p[b] == n-1)
break;
if(p[c] == -1)
Move(a,c);
else if(p[a] == -1)
Move(c,a);
else if(x[a][p[a]] < x[c][p[c]])
Move(a,c);
else
Move(c,a);
Show();
Rotation();
}
} // PROCESS

void main()
{
cout << "Torres de Hanoi, processo no recursivo : " << endl << endl;
GetDim();
Init();
Process();
cout << "end of program - good bye ! ! ! " << endl;
} // MAIN

Eduardo
14 de Noviembre del 2004
porfa necesito el programa de las torres de hanoi pero recursivo enviamelo gracias.

noel solw
14 de Noviembre del 2004
si te molestas en buscarlo, puedes encontrarlo en este foro.

ana
14 de Noviembre del 2004
mandeme un programa de hanoi recursivo

kleber
14 de Noviembre del 2004
recuersivo las torres de hanoi

noel solw
14 de Noviembre del 2004
programa Hanoi recursivo : si te molestas en buscarlo, puedes encontrarlo en este foro.

sofis
14 de Noviembre del 2004
pero recursivo