Bueno, gracias por la ayuda, hice varias modificaciones y ahora ya consigo que me genere un camino, pero ahora que lo ejecuto no me muestra automáticamente la solución.
Código (cpp) [Seleccionar]
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <stdlib.h>
#include <time.h>
int lab[12][12];
int iniciocol=0, iniciofila=0, caminfila=0, camincol=1, decidir=0, pared=1, espacio=0, yapaso=2, novolver=3;
main(){
/*se asignan paredes*/
for(int i=0; i<12; i++){
for(int j=0; j<12;j++){
lab[i][j] = pared;
}
}
/*se genera el inicio*/
srand(time(NULL));
iniciofila = (1+rand()%(6-1));
/*Asignamos la entrada y declaramos el pasillo de entrada*/
lab[iniciofila][iniciocol] = espacio;
caminfila = iniciofila;
lab[caminfila][camincol] = espacio;
/*Creamos el camino*/
while(caminfila < 11 && camincol < 11){
decidir = rand()%3;
if (decidir == 0){ /*camino se fabrica a la izquierda*/
camincol = camincol-1;
if(camincol < 1){
camincol = camincol+1;
} else {
lab[caminfila][camincol] = espacio;
camincol++;
}
}
if(decidir ==1 ) { /*camino para abajo*/
caminfila++;
lab[caminfila][camincol] = espacio;
} else if (decidir == 2){ /*camino a la derecha*/
camincol++;
lab[caminfila][camincol] = espacio;
}
}
/*Se crean caminos falsos*/
for(int i=1; i<11; i++){
for(int j=1;j<11;j++){
if (lab[i][j] != espacio) {
decidir = rand()%2;
if(decidir==0){
lab[i][j] = espacio;
}
}
}
}
/*Se resuelve el laberinto*/
lab[iniciofila][iniciocol] = yapaso;
caminfila = iniciofila;
camincol = iniciocol;
while(caminfila<12){
if(lab[caminfila+1][camincol] == espacio){
caminfila++;
lab[caminfila][camincol] = yapaso;
} else if(lab[caminfila][camincol+1] == espacio){
camincol++;
lab[caminfila][camincol] = yapaso;
} else if(lab[caminfila-1][camincol] == espacio){
caminfila--;
lab[caminfila][camincol] = yapaso;
} else if(lab[caminfila][camincol-1] == espacio){
camincol--;
lab[caminfila][camincol] = yapaso;
} else if((lab[caminfila+1][camincol] != espacio) && (lab[caminfila][camincol+1] != espacio) && (lab[caminfila-1][camincol] != espacio)){
lab[caminfila][camincol] = novolver;
camincol--;
} else if((lab[caminfila+1][camincol] != espacio) && (lab[caminfila][camincol+1] != espacio) && (lab[caminfila][camincol-1] != espacio)){
lab[caminfila][camincol] = novolver;
caminfila--;
} else if((lab[caminfila+1][camincol] != espacio) && (lab[caminfila][camincol+1] != espacio) && (lab[caminfila-1][camincol] != espacio)){
lab[caminfila][camincol] = novolver;
camincol++;
} else if((lab[caminfila-1][camincol] != espacio) && (lab[caminfila][camincol+1] != espacio) && (lab[caminfila-1][camincol] != espacio)){
lab[caminfila][camincol] = novolver;
caminfila++;
}
}
/*muestra el laberinto*/
for(int i=0; i<12; i++){
for(int j=0; j<12;j++){
if(lab[i][j] == pared){
cout<<"#";
cout<<" ";
} else if((lab[i][j] == espacio) || lab(lab[i][j] == novolver)) {
cout<<".";
cout<<" ";
} else if (lab[i][j] == yapaso){
cout<<"X";
cout<<" ";
}
}
cout<<"\n";
}
getchar();
}