El laberinto
Bueno esta fue la ultima tarea q nos dieron........se llama el laberinto, la cual constaba de paredes representadas por 1 y el camino or 0 y al ir caminando los 2 se tenian q transformara en 2 si era el camino correcto o en 1 si era el incorrecto, bueno espero q les sea de utilidad...
aqui esta el link: http://rapidshare.com/files/130993672/laberinto_por_elkenost.c
aqui esta por si o lo desean descargar aunq yo recomiendo q lo descargen ya q se ve mas ordenado#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int lab[12][12]=
{ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1 },
{ 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1 },
{ 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1 },
{ 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1 },
{ 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1 },
{ 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1 },
{ 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1 },
{ 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1 },
{ 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1 },
{ 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
};
int posx=1;
int posy=1;
void mostrar();
void retroceder();
int verificar();
void recorrer();
main(){
int ok=0,i,j;
mostrar();
recorrer();
if (ok==0)
printf("\nLaberinto sin solucion\n");
mostrar();
printf("\n");
}
void mostrar(){
int i,j,k=257;
printf("\n");
for (i=0; i<12; i++) {
for (j=0; j<12; j++) {
if(lab[i][j]==3)
printf("%c ",k);
else
printf("%d ", lab[i][j]);
}
printf("\n");
}
}
void retroceder(){
lab[posx][posy]=1;
if(lab[posx-1][posy]==2){
posx--;
recorrer();
}
if(lab[posx][posy-1]==2){
posy--;
recorrer();
}
if(lab[posx][posy+1]==2){
posy++;
recorrer();
}
if(lab[posx+1][posy]==2){
posx++;
recorrer();
}
}
int verificar(){
if((posx==10)&&(posy==10)){
lab[posx][posy]=3;
return(2);
}
return(1);
}
void recorrer() {
int res;
if(lab[posx-1][posy]==0){
lab[posx][posy]=2;
posx--;
recorrer();
}
if(lab[posx][posy-1]==0){
lab[posx][posy]=2;
posy--;
recorrer();
}
if(lab[posx][posy+1]==0){
lab[posx][posy]=2;
posy++;
recorrer();
}
if(lab[posx+1][posy]==0){
lab[posx][posy]=2;
posx++;
recorrer();
}
res=verificar();
if(res==2){
printf("\nYou WIN!!!\n");
mostrar();
system("pause");
exit(0);
}
else
retroceder();
}
Bueno espero q les sea de utilidad