Torre de Hanoi em C++
Por: gustavos_andrade • 12/4/2015 • Trabalho acadêmico • 12.217 Palavras (49 Páginas) • 686 Visualizações
#include<iostream.h>
int main(){
//Criando torre!!!
int qtDisco;
cout<<"informe o numero de disco: ";
cin>>qtDisco;
int m[qtDisco + 1][3], aux = 1, auxDisco = 0, auxColuname = 0;
int auxLinhame = 0, a = 1, b = qtDisco -1, c = qtDisco -1, maiorDisco = 0, menorDisco = qtDisco;
int a1 = 0, b1 = 1, c1 = 2, auxLinhama = 0, auxColunama = 0, segMenor, segMaior;
int auxLinhaSegme = 0, auxColunaSegme = 0, segmeDisco = 0, auxA = 0, auxB = 0, auxC = 0, jogadas = 1, cont = 0;
for(int i = 0; i < qtDisco; i++){
jogadas = jogadas * 2;
}
jogadas = jogadas -2;
for(int linha = 0; linha < qtDisco ; linha++){
for(int coluna = 0; coluna < 3; coluna++){
if(coluna == 0){
m[linha][coluna] = aux;
aux++;
}
else{
m[linha][coluna] = 0;
}
}
}
//imprimindo torre!!!
cout<<"\n\n\n";
for(int linha = 0; linha < qtDisco ; linha++){
for(int coluna = 0; coluna < 3; coluna++){
cout<<"\t"<<m[linha][coluna]<<"\t\t";
}
cout<<"\n";
}
// primeira jogada!!!
_sleep(500);
system("CLS");
if(qtDisco % 2 == 0){
auxDisco = m[0][0];
m[qtDisco -1][1] = auxDisco;
m[0][0] = 0;
}
else{
auxDisco = m[0][0];
m[qtDisco -1][2] = auxDisco;
m[0][0] = 0;
}
cout<<"\njogada: "<<cont +1;
cout<<"\n\n\n";
for(int linha = 0; linha < qtDisco ; linha++){
for(int coluna = 0; coluna < 3; coluna++){
cout<<"\t"<<m[linha][coluna]<<"\t\t";
}
cout<<"\n";
}
_sleep(500);
system("CLS");
while(jogadas > cont){
// achando o maior Disco!!!
maiorDisco = 0;
menorDisco = qtDisco ;
segmeDisco = 0;
if(m[a][a1] > maiorDisco){
auxLinhama = a;
auxColunama = a1;
maiorDisco = m[a][a1];
}
if(m[b][b1] > maiorDisco){
auxLinhama = b;
auxColunama = b1;
...