elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda, Codigo Laberinto
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda, Codigo Laberinto  (Leído 1,732 veces)
RuKsu

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Ayuda, Codigo Laberinto
« en: 10 Diciembre 2014, 21:03 pm »

Hola necesitaba ayuda en este codigo en el cual debo hacer un laberinto. Queria saber si lo hice bien, y si tengo algun error si lo pueden corregir, la consigna es la siguiente:
Se dispone de una matriz de N x M que representa un laberinto compuesto de paredes y baldosas (1 y 0), este laberinto consta de entradas ubicadas en la primera fila y salidas en la última fila.
Se pide:
-Encontrar todos los caminos hacia la salida.
-Almacenar en una lista simplemente encadenada los pasos que se involucran en camino.
-N y M son valores ingresados por el usuario.
-Mostrar matriz y la lista.

Laberinto.cpp(Backtracking)
Código:
#include<cstdio>
#include<cstdlib>
#include<ctime>
#include<iostream>
#include"Laberinto.h";
#include"Matriz.h";

using namespace std;

bool Solucion = false;

Laberinto::Laberinto(int f,int c){
filas = f
columnas= c
mat = new int*(filas);
for(int contador = 0; contador < columnas;contador++){
mat[contador]= int[columnas];
}

void Laberinto::recorrer(int mat[f][c],int i,int j, int pasos){

if(i-1>=0 && i-1<f &&(laberinto[i-1][j]=='0' ||//Arriba
return true;
recorrer(laberinto,i-1,j,pasos+1);
if(j+1>=0 && j+1<c &&(laberinto[i][j+1]=='0' ||//Derecha
return true;
recorrer(laberinto,i,j+1,pasos+1);
if(i+1>=0 && i+1<f &&(laberinto[i+1][j]==' ' ||//Abajo
recorrer(laberinto,i+1,j,pasos+1);
return true;
if(j-1>=0 && j-1<c &&(laberinto[i][j-1]=='0' ||//Izquierda
recorrer(laberinto,i,j-1,pasos+1);
return true;
if(i-1>=0 && i-1<f && j+1>= && j+1<c(laberinto[i-1][j+1]=='0' ||//ArribaDerecha
recorrer(laberinto,i-1,j+1,pasos+1);
return true;
if(i-1>=0 && i-1<f && j-1>= && j-1<c(laberinto[i-1][j-1]=='0' ||//ArribaIzquierda
recorrer(laberinto,i-1,j-1,pasos+1);
return true;
if(i+1>=0 && i+1<f && j+1>= && j+1<c(laberinto[i+1][j+1]=='0' ||//AbajoDerecha
recorrer(laberinto,i+1,j+1,pasos+1);
return true;
if(i+1>=0 && i+1<f && j-1>= && j-1<c(laberinto[i+1][j-1]=='0' ||//AbajoIzquierda
recorrer(laberinto,i+1,j-1,pasos+1);
return true;
laberinto[i][j] = '0';
return false;
}

Matriz.cpp
Código:
#include<cstdio>
#include<cstdlib>
#include<ctime>
#include<iostream>
#include "Matriz.h";
using namespace std;

//Main srand(time(NULL));
/*Main cout<<"cantidad filas";
cin>>filas;
cout<<"cantidad columnas";
cin>>columnas;
*/
Matriz::Matriz(int f,int c){
filas = f
columnas= c
mat = new int*(filas);
for(int contador = 0; contador < columnas;contador++){
mat[contador]= int[columnas];
}
llenarMatriz();
}

void Matriz::llenarMatriz{
for (int i = 0; i<filas;i++){
for(int j = 0; j<columnas;j++){
mat[i][j] = return (int) rand()% 2;
}
}
}
void Matriz::mostrarMatriz{
for(int i = 0; i<filas; i++){
for(int j = 0; j<columnas;j++){
cout << mat[j][i];
}
cout << endl;
}
}

Matriz::~Matriz(){
}

Main.cpp
Código:
#include<cstdio>
#include<cstdlib>
#include<ctime>
#include<iostream>
#include "Matriz.h";

using namespace std;

int main(){
Matriz *m;
int n;
int continuar;

do{
cout<<"------------------------------"<<endl;
cout<<"1.Crear Laberinto nxm" << endl;
cout<<"2.Mostrar Lista" << endl;
cout<<"------------------------------"<<endl;
cin >> n;
switch(n){
case 1: {
int c;
int f;

cout << "Ingrese cantidad de filas" << endl;
cin >> f;
cout << "Ingrese cantidad de columnas" << endl;
cin >> c;
m= new Matriz();
m->mostrarMatriz();
}
//case 2:{
do{
cout<<"Desea Continuar? 1.Si/0.No" << endl;
cin << continuar;
}while(continuar < 0 or continuar > 1);
}while(continuar !=0);
return(0);
}
}


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Ayuda] Necesito el Laberinto de MCKSys Argentina
Programación Visual Basic
sebah97 5 2,306 Último mensaje 23 Junio 2010, 19:37 pm
por sebah97
Ayuda con laberinto en una matriz
Programación C/C++
edotropic 5 2,661 Último mensaje 20 Diciembre 2013, 13:29 pm
por leosansan
urgente!ayuda, Laberinto C++
Programación C/C++
RuKsu 7 3,896 Último mensaje 7 Diciembre 2014, 05:41 am
por sebah97
Ayuda backtraking laberinto
Java
fenixskate 0 849 Último mensaje 14 Octubre 2015, 19:57 pm
por fenixskate
ayuda urgente laberinto con grafos
Programación C/C++
blaaaack 0 2,131 Último mensaje 20 Junio 2017, 02:33 am
por blaaaack
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines