¿Alguien me podría ayudar con este código?
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++
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 (cpp) [Seleccionar]
#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();
}