Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - michfere43

#1
Programación C/C++ / Torre de Hanoi
27 Octubre 2020, 23:58 PM
Hola si me pueden ayudar , necesito hacer el juego de las torres de hanoi pero me falta el metodo de apilar y desapilar
Código (cpp) [Seleccionar]
#include <iostream>

using namespace std;

int iniciarJuego(int torre1[], int torre2[], int torre3[], int cima1, int discos);
void mostrarTorres(int torre1[], int torre2[], int torre3[], int discos);
void mostrarCima(int cima1, int cima2, int cima3);


int main()
{
cout<<"T O R R E  D E  H A N O I"<<endl<<endl;
int discos = 0;
cout<<"Para iniciar indica el numero de discos: ";
cin>>discos;


int torre1[discos];
int cima1 = -1;
int torre2[discos];
int cima2 = -1;
int torre3[discos];
int cima3 = -1;
int opc = 0;
int origen = 0;
int destino = 0;

cima1 = iniciarJuego(torre1, torre2, torre3, cima1, discos);
//mostrarTorres(torre1, torre2, torre3, discos);
//mostrarCima(cima1, cima2, cima3);
if(discos==1)
{
cout<<"mover disco de torre 1 a torre 3" ;
}
else
{
cout<<"Selecciona una opcion: \n 1. Realizar un movimiento\n 2. Terminar el juego";
cin>>opc;
switch(opc)
{
case 1:
cout<<endl<<endl<<"Torre origen: ";
cin>>origen;
void moverdisco();
switch(origen)
{
case 1:
cout<<endl<<"Torre destino: \n 2. Torre 2\n 3. Torre 3"<<endl;
cin>>destino;
if(destino == 2 || destino == 3)
{
void desapilar();
}else{
cout<<endl<<"Torre destino invalido"<<endl;
}
break;
case 2:
cout<<endl<<"Torre destino: \n 1. Torre 1\n 3. Torre 3"<<endl;
cin>>destino;
break;
case 3:
cout<<endl<<"Torre destino: \n 2. Torre 2\n 1. Torre 1"<<endl;
cin>>destino;
break;
default:
cout<<endl<<"Torre destino invalido"<<endl;
break;
}
break;
case 2:
break;
default:
cout<<endl<<"Torre origen invalido"<<endl;
opc = 3;
break;
}
}while(opc == 3);


return 0;
}

int iniciarJuego(int torre1[], int torre2[], int torre3[], int cima1, int discos)
{
for(int i = 0; i<discos; i ++)
{
torre1[i] = discos - i;
cima1 ++;

torre2[i] = 0;
torre3[i] = 0;
}

return cima1;
}

void mostrarTorres(int torre1[], int torre2[], int torre3[], int discos)
{
cout<<endl<<"Torre 1: ";
for (int i = 0; i<discos; i++)
{
cout<<torre1[i]<<" ";
}

cout<<endl<<"Torre 2: ";
for (int i = 0; i<discos; i++)
{
cout<<torre2[i]<<" ";
}

cout<<endl<<"Torre 3: ";
for (int i = 0; i<discos; i++)
{
cout<<torre3[i]<<" ";
}
}

void mostrarCima(int cima1, int cima2, int cima3)
{
cout<<endl<<endl<<"Indice cima 1: "<<cima1;
cout<<endl<<"Indice cima 2: "<<cima2;
cout<<endl<<"Indice cima 3: "<<cima3;
}

void desapilar()
{

}
void apilar()
{

}


MOD: Etiquetas GeSHi.