Documentos de Académico
Documentos de Profesional
Documentos de Cultura
/*
Extencion.h
*/
#include "pilas.h"
void DibujarTorreVacia();
int ObtenerTop(Pila);
/*
*/
#ifndef _PILAS_H
#define _PILAS_H
#include <string.h>
struct _NodoPila {
int info;
struct _NodoPila *sig;
};
#endif
/*
extencion.cpp
*/
#include "pilas.h"
#include <malloc.h>
aux = *p;
*p = (*p)->sig;
//free(aux); <-- Fallo en free
}
}
#include "torres.h"
#include <stdio.h>
void DibujarTorreVacia(){
printf("\t-\n");
}
Desapilar(&Torre1);
}
printf("\n\t-\n");
}else{
printf("Torre 1\n");
DibujarTorreVacia();
}
if (! PilaVacia(Torre2)){
printf("Torre 2\n");
printf("\n");
for (i=0;(i<NumeroPiezas && ! PilaVacia(Torre2));i++){
printf("\t%d\n",Cima(Torre2));
Desapilar(&Torre2);
}
printf("\n\t-\n");
}else{
printf("Torre 2\n");
DibujarTorreVacia();
}
if (! PilaVacia(Torre3)){
printf("Torre 3\n");
printf("\n");
for (i=0;(i<NumeroPiezas && ! PilaVacia(Torre3));i++){
printf("\t%d\n",Cima(Torre3));
Desapilar(&Torre3);
}
printf("\n\t-\n");
}else{
printf("Torre 3\n");
DibujarTorreVacia();
}
}
switch (t3) {
case 1:
Pintar(piezas,*des,*ori,*aux);
break;
case 3:
Pintar(piezas,*aux,*ori,*des);
break;
}
break;
case 3:
switch (t3) {
case 1:
Pintar(piezas,*des,*aux,*ori);
break;
case 2:
Pintar(piezas,*aux,*des,*ori);
break;
}
}
printf("\nPulsa cualquier tecla para ver el siguiente paso");
getch();
system("cls");
}
else{
mov=torresHanoi(n-1,ori,des,aux,piezas, t1, t3, t2,mov);
mov=torresHanoi(1, ori,aux,des,piezas, t1, t2, t3,mov);
mov=torresHanoi(n-1,aux,ori,des,piezas, t2, t1, t3,mov);
}
return mov;
}
/*
Programa principal
*/
#include "torres.h"
void main(){
PilaDatos Torre1=NULL;
PilaDatos Torre2=NULL;
PilaDatos Torre3=NULL;
InicioJuego(&Torre1,&Torre2,&Torre3);
getch();
}