Necesito que se genere solo una entrada y una salida.
En el código actual se genera más de un camino a la vez y necesito que sea solo uno conectado con la entrada y salida.
Agrego: Estoy compilando en Borland C++
Código
#include <stdio.h> #include <conio.h> #include <iostream.h> #include <stdlib.h> #include <time.h> int lab[11][11]; int iniciocol=0, iniciofila=0, fincol=0, finfila=0, caminfila=0, camincol=0, decidir=0, pared=1, espacio=0; 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)); iniciocol = (1+rand()%(11-1)); if (iniciocol == 0) { iniciofila = (1+rand()%(11-1)); } else { iniciofila = 0; } /*Asignamos la entrada y salida y declaramos para empezar a crear el camino*/ lab[iniciofila][iniciocol] = espacio; caminfila = iniciofila++; camincol = iniciocol; lab[caminfila][camincol] = espacio; /*Creamos el camino*/ while(caminfila < 11 && camincol < 11){ decidir = rand()%4; if (decidir == 0){ /*camino se fabrica a la izquierda*/ camincol = camincol-1; lab[caminfila][camincol] = espacio; } else if(decidir ==1 ) { /*camino para abajo*/ caminfila++; lab[caminfila][camincol] = espacio; /*camino a la derecha*/ } else if (decidir == 2){ camincol++; lab[caminfila][camincol]; } } /*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 { cout<<"."; cout<<" "; } } cout<<"\n"; } getchar(); }