|
153
|
Comunicaciones / Redes / Re: No puedo acceder a las paginas web
|
en: 30 Marzo 2014, 06:18 am
|
Bueno primera vez que me sucede esto, y agradeceria que me explicaran al menos, entre en las conexiones de red, en propiedades protocolo TCP/IPv4
servidor DNS preferido 8.8.8.8 servidor DNS alternativo 8.8.4.4
Y aun asi no me puedo conectar, sigue el problema =/
|
|
|
154
|
Comunicaciones / Redes / No puedo acceder a las paginas web
|
en: 30 Marzo 2014, 06:04 am
|
Hola que tal, hoy se me fue la luz y cuando trate de entrar de nuevo a navegar no podia acceder a la mayoria de las paginas web, en estos momentos uso Tor el cual es el unico que me permite poder acceder a todas las paginas ,ni chrome, ni firefox, ni internet explorer me permiten acceder a ellas, no se si sea que el router se desconfiguro, aunque ya lo configure como de fabrica y en realidad no se a que se deba esto =/ agradeceria mucho que me ayuden.
|
|
|
158
|
Programación / Programación C/C++ / Re: Ayuda optimizacion busqueda de salida en laberinto
|
en: 28 Marzo 2014, 20:01 pm
|
Viendo ejemplos de códigos recursivos logre modificar mi programa ( hice que la función retornara valores, y modifique los if ), ahora el programa si busca caminos alternativos, pero aun asi existen caminos que no recorre, en el caso de mi laberinto, si a la posicion que deberia ser la salida lo hago un obstaculo, al programa le quedarían 2 caminos por verificar Coloco todo el codigo de nuevo porque hice algun cambio en main #include <stdio.h> #include <stdlib.h> // Para usar funcion de limpiar pantalla #include <windows.h> // Para usar funcion de hacer pausa #define TAM_FIL 12 #define TAM_COL 12 typedef struct { int estaEnFinal; //------------------- Para saber si llego al final el objeto char simbolo; int pos_x; //------------------------- Coordenada del objeto en X int pos_y; //------------------------- Coordenada del objeto en Y }Objeto; typedef struct { // ----------------------------------- Simplemente para saber las coordenadas de los puntos X e Y de inicio y fin del laberinto ------------------------------------ int ini_fil; int ini_col; int fin_fil; int fin_col; }InformacionMapa; void mostrarEstadoMapa( char laberinto[][TAM_COL] ); int recorrerLaberinto( char laberinto[][TAM_COL], InformacionMapa *punto, Objeto obj ); int main( int argc, char* args[] ) { InformacionMapa mapa; mapa.ini_fil = 2; mapa.ini_col = 0; mapa.fin_fil = 4; mapa.fin_col = 11; Objeto obj; obj.simbolo = 'X'; obj.estaEnFinal = 0; obj.pos_x = 2; obj.pos_y = 0; char laberinto[TAM_FIL][TAM_COL] = { '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', ' ', ' ', ' ', '#', ' ', ' ', ' ', ' ', ' ', ' ', '#', ' ', ' ', '#', ' ', '#', ' ', '#', '#', '#', '#', ' ', '#', '#', '#', '#', ' ', '#', ' ', ' ', ' ', ' ', '#', ' ', '#', '#', ' ', ' ', ' ', ' ', '#', '#', '#', ' ', ' ', ' ', ' ', '#', '#', '#', '#', ' ', '#', ' ', '#', ' ', '#', ' ', '#', '#', ' ', ' ', '#', ' ', '#', ' ', '#', ' ', '#', ' ', '#', '#', '#', ' ', '#', ' ', '#', ' ', '#', ' ', '#', ' ', '#', '#', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '#', ' ', '#', '#', '#', '#', '#', '#', '#', ' ', '#', '#', '#', ' ', '#', '#', ' ', ' ', ' ', ' ', ' ', ' ', '#', ' ', ' ', ' ', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#' }; if( recorrerLaberinto( laberinto, &mapa, obj ) == 1 ) printf("\n\n\nFinal del laberinto encontrado"); else printf("\n\n\nNo hay salida en este laberinto."); getchar(); return 0; } void mostrarEstadoMapa( char laberinto[][TAM_COL] ) { int cont_fil, cont_col; system("cls"); for( cont_fil = 0; cont_fil < TAM_FIL; cont_fil++ ) { for( cont_col = 0; cont_col < TAM_COL; cont_col++ ) { printf("%c", laberinto[cont_fil][cont_col]); printf(" "); } printf("\n\n"); } Sleep(200); } int recorrerLaberinto( char laberinto[][TAM_COL], InformacionMapa *mapa, Objeto obj ) { if( obj.pos_x == mapa->fin_fil && obj.pos_y == mapa->fin_col ) { obj.estaEnFinal++; return 1; } laberinto[obj.pos_x][obj.pos_y] = obj.simbolo; mostrarEstadoMapa( laberinto ); if( laberinto[obj.pos_x][obj.pos_y + 1] == ' ' && obj.pos_y + 1 < TAM_COL ) { obj.pos_y++; if( recorrerLaberinto( laberinto, mapa, obj ) == 1 ) return 1; } if( laberinto[obj.pos_x + 1][obj.pos_y] == ' ' && obj.pos_x + 1 < TAM_FIL ) { obj.pos_x++; if( recorrerLaberinto( laberinto, mapa, obj ) == 1 ) return 1; } if( laberinto[obj.pos_x - 1][obj.pos_y] == ' ' && obj.pos_x - 1 >= 0 ) { obj.pos_x--; if( recorrerLaberinto( laberinto, mapa, obj ) == 1 ) return 1; } if( laberinto[obj.pos_x][obj.pos_y - 1] == ' ' && obj.pos_y - 1 >= 0 ) { obj.pos_y--; if( recorrerLaberinto( laberinto, mapa, obj ) == 1 ) return 1; } return 0; }
|
|
|
159
|
Programación / Programación C/C++ / Re: Ayuda optimizacion busqueda de salida en laberinto
|
en: 28 Marzo 2014, 14:36 pm
|
El using namespace std; si fue un descuido se me habia olvidado borrar esa linea, solo que cuando intente modificar el post cuando le daba previsualizar me mostraba algunos caracteres raros y lo deje asi y bueno estaba intentando resolverlo con recursividad, la linea if( laberinto[obj->pos_x][obj->pos_y + 1] != '#' && laberinto[obj->pos_x][obj->pos_y + 1] != obj->simbolo )
Simplemente la use para saber si cuando el objeto se mueva a la posicion siguiente no haya obstaculo '#' o no esté ya su simbolo (indicando que ya paso por alli), pero como dije, los problemas de recursividad me cuestan pensarlos.
|
|
|
160
|
Programación / Programación C/C++ / Ayuda optimizacion busqueda de salida en laberinto
|
en: 28 Marzo 2014, 02:40 am
|
Hola, aqui les traigo un problema que estoy haciendo sobre, dado un laberinto de 12 x 12 usar la regla de la mano derecha para conseguir la salida del laberinto e indicar si hay salida o no, como tal el programa corre y si encuentra la salida, pero no se si lo esta haciendo de la mejor manera, he aqui el codigo: #include <stdio.h> #include <stdlib.h> // Para usar funcion de limpiar pantalla #include <windows.h> // Para usar funcion de hacer pausa #define TAM_FIL 12 #define TAM_COL 12 using namespace std; typedef struct { int estaEnInicio, estaEnFinal; //----- Para saber cuantas veces nuestro objeto ha estado en el inicio y si esta en el final char simbolo; int pos_x; //------------------------- Coordenada del objeto en X int pos_y; //------------------------- Coordenada del objeto en Y }Objeto; typedef struct { // ----------------------------------- Simplemente para saber las coordenadas de los puntos X e Y de inicio y fin del laberinto ------------------------------------ int ini_fil; int ini_col; int fin_fil; int fin_col; }InformacionMapa; void mostrarEstadoMapa( char laberinto[][TAM_COL] ); void recorrerLaberinto( char laberinto[][TAM_COL], InformacionMapa *punto, Objeto *obj ); int main( int argc, char* args[] ) { int cont_fil, cont_col; InformacionMapa mapa; mapa.ini_fil = 2; mapa.ini_col = 0; mapa.fin_fil = 4; mapa.fin_col = 11; Objeto obj; obj.simbolo = 'X'; obj.estaEnInicio = 0; obj.estaEnFinal = 0; obj.pos_x = 2; obj.pos_y = 0; char laberinto[TAM_FIL][TAM_COL] = { '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', ' ', ' ', ' ', '#', ' ', ' ', ' ', ' ', ' ', ' ', '#', ' ', ' ', '#', ' ', '#', ' ', '#', '#', '#', '#', ' ', '#', '#', '#', '#', ' ', '#', ' ', ' ', ' ', ' ', '#', ' ', '#', '#', ' ', ' ', ' ', ' ', '#', '#', '#', ' ', ' ', ' ', ' ', '#', '#', '#', '#', ' ', '#', ' ', '#', ' ', '#', ' ', '#', '#', ' ', ' ', '#', ' ', '#', ' ', '#', ' ', '#', ' ', '#', '#', '#', ' ', '#', ' ', '#', ' ', '#', ' ', '#', ' ', '#', '#', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '#', ' ', '#', '#', '#', '#', '#', '#', '#', ' ', '#', '#', '#', ' ', '#', '#', ' ', ' ', ' ', ' ', ' ', ' ', '#', ' ', ' ', ' ', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#' }; recorrerLaberinto( laberinto, &mapa, &obj ); getchar(); return 0; } void mostrarEstadoMapa( char laberinto[][TAM_COL] ) { int cont_fil, cont_col; system("cls"); for( cont_fil = 0; cont_fil < TAM_FIL; cont_fil++ ) { for( cont_col = 0; cont_col < TAM_COL; cont_col++ ) { printf("%c", laberinto[cont_fil][cont_col]); printf(" "); } printf("\n\n"); } Sleep(500); } void recorrerLaberinto( char laberinto[][TAM_COL], InformacionMapa *mapa, Objeto *obj ) { if( obj->pos_x == mapa->ini_fil && obj->pos_y == mapa->ini_col ) obj->estaEnInicio++; else if( obj->pos_x == mapa->fin_fil && obj->pos_y == mapa->fin_col ) obj->estaEnFinal++; while( laberinto[4][11] != obj->simbolo && obj->estaEnInicio == 1 && !obj->estaEnFinal ) { laberinto[obj->pos_x][obj->pos_y] = obj->simbolo; mostrarEstadoMapa( laberinto ); if( laberinto[obj->pos_x][obj->pos_y + 1] != '#' && laberinto[obj->pos_x][obj->pos_y + 1] != obj->simbolo ) { obj->pos_y++; recorrerLaberinto( laberinto, mapa, obj ); } else if( laberinto[obj->pos_x + 1][obj->pos_y] != '#' && laberinto[obj->pos_x + 1][obj->pos_y] != obj->simbolo ) { obj->pos_x++; recorrerLaberinto( laberinto, mapa, obj ); } else if( laberinto[obj->pos_x - 1][obj->pos_y] != '#' && laberinto[obj->pos_x - 1][obj->pos_y] != obj->simbolo ) { obj->pos_x--; recorrerLaberinto( laberinto, mapa, obj ); } else if( laberinto[obj->pos_x][obj->pos_y - 1] != '#' && laberinto[obj->pos_x][obj->pos_y - 1] != obj->simbolo ) { obj->pos_y--; recorrerLaberinto( laberinto, mapa, obj ); } else if( laberinto[obj->pos_x][obj->pos_y - 1] != '#' ) { obj->pos_y--; recorrerLaberinto( laberinto, mapa, obj ); } else if( laberinto[obj->pos_x - 1][obj->pos_y] != '#' ) { obj->pos_x--; recorrerLaberinto( laberinto, mapa, obj ); } else if( laberinto[obj->pos_x + 1][obj->pos_y] != '#' ) { obj->pos_x++; recorrerLaberinto( laberinto, mapa, obj ); } else if( laberinto[obj->pos_x][obj->pos_y + 1] != '#' ) { obj->pos_y++; recorrerLaberinto( laberinto, mapa, obj ); } } if( obj->estaEnInicio > 1 ) printf("\n\n\nNo hay salida en este laberinto."); if( obj->estaEnFinal ) printf("\n\n\nFinal del laberinto encontrado"); }
Disculpen el exceso de if-else xD, debo mejorar esa parte. Nota: Aun no lo he probado con un laberinto distinto con punto de partida y fin distintos.
He probado quitandole la salida y alli si que no hace la busqueda por todas las posibles rutas del laberinto, aunque se que esto seria un problema de backtracking, yo no soy muy experto cuando se trata de recursividad jeje
|
|
|
|
|
|
|