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

 

 


Tema destacado: Tutorial básico de Quickjs


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

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Ayuda con laberinto en una matriz
« en: 20 Diciembre 2013, 01:08 am »

buenas, ante todo muchas gracias por la ayuda que me daran..

les cuento debo crear una matriz de tamaño M por ejemplo 5x5 en la cual debe estar ingresada con caracteres "a" y "c" en los cuales debo moverme solo por las letras A
en otras palabras la letra c son murallas, ahora cuando estoy en una casilla debo poder moverme arriba abajo izquiera o derecha, estuve tratando de provar unas cosas pero no me funcionaron, haber si me ayudan un poco con el codigo

#include <stdio.h>
#include <stdlib.h> //incluye srand() y rand()
#include <conio.h>
#include <time.h> //incluye time()
 
char mat[4][4]; //tamaño de la matriz
char letras[]="ac";
int numdeletras=sizeof(letras)/sizeof(letras[0])-1;
 
int main()
{
   
   
    srand(time(0));//numeros Aleatorios en funcion del tiempo
    for (int i=0;i<4;i++)//para desplazarse por las columnas
    {
        for (int j=0;j<4;j++)//para desplazarse por las filas
        {
            mat[j]=letras[rand()%numdeletras];//Agrega numero aleatorio a la posicion ij de la matriz
            printf("\t%c",mat[j]);//imprime elemento de la matriz en pantalla
        }
      printf("\n\n");//para dejar espacios entre filas.
      printf("\i\j");
    }

   
   
   getche();
}

en el fondo lleno la matriz, pero no se como poder moverme a izquierda derecha etc... agradeso su ayuda


En línea

dvigon

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Ayuda con laberinto en una matriz
« Respuesta #1 en: 20 Diciembre 2013, 01:56 am »

NO estoy seguro pero esto quizás te sirva...
Código:

#define JUGADOR 2
#define N 4
// donde pone N será el valor de las filas y columnas de la matriz

// Mueve el jugador en la matriz
void Mover_Jugador( char Matriz[N][N], char Tecla, int *Filas, int *Columnas ){

    int F, C, Posicion[N][N];

    for( int i = 0; i < N; i++ )
        for( int j = 0; j < N; j++ )
            Posicion[i][j] = Matriz[i][j];

    F = *Filas;
    C = *Columnas;

    switch( Tecla ){

        case 72: // Movimiento hacia arriba
            if( *Filas > 0 && Matriz[*Filas - 1][*Columnas] != 'c' ){
                ( *Filas )--;
                ( *Puntos ) ++;
                Posicion[F + 1][*Columnas];
            }
            break;

        case 80: // Movimiento hacia abajo
            if( *Filas < N - 1 && Matriz[*Filas + 1][*Columnas] != 'c' ){
                ( *Filas )++;
                ( *Puntos ) ++;
                Posicion[F - 1][*Columnas];
            }
            break;

        case 75: // Movimiento hacia la derecha
            if( *Columnas > 0 && Matriz[*Filas][*Columnas - 1] != 'c' ){
                ( *Columnas )--;
                ( *Puntos ) ++;
                Posicion[F][C + 1];
            }
            break;

        case 77: // Movimiento hacia la izquierda
            if( *Columnas < N - 1 && Matriz[*Filas][*Columnas + 1] != 'c' ){
                ( *Columnas )++;
                ( *Puntos ) ++;
                Posicion[F][C - 1];
            }
            break;

        }

        Matriz[*Filas][*Columnas] = JUGADOR; // JUGADOR se mueve de posicion

}

int main( ){

    int Matriz[N][N];  // Tu matriz
    int Tecla; // Tecla que introduces por pantalla

do{

        Tecla = getch( );

        if( Tecla == -32 || Tecla == 0 ) // Mueve el jugador
            Tecla = getch( );

        Mover_Jugador( Matriz, Tecla, &Filas, &Columnas );

    }while(  AQUÍ TU CONDICIÓN PARA EL FINAL DEL BUCLE );
}


« Última modificación: 20 Diciembre 2013, 02:05 am por dvigon » En línea

edotropic

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Ayuda con laberinto en una matriz
« Respuesta #2 en: 20 Diciembre 2013, 02:05 am »

la tecla que recibe ahi son las flechas??? .. otra consulta como podria escribir mi condicion.. por que yo diria si la posicion de la matriz es igual a la letra "a" ahi solo entra
En línea

dvigon

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Ayuda con laberinto en una matriz
« Respuesta #3 en: 20 Diciembre 2013, 02:08 am »

Sí, la variable Tecla recibe el movimiento que indicas por teclado CON LOS CURSORES.

Ya esta la condición de que no pase a la casilla con valor c
mediante el if por ejemplo de:
Código:
        case 80: // Movimiento hacia abajo
            if( *Filas < N - 1 && Matriz[*Filas + 1][*Columnas] != 'c' ){
                ( *Filas )++;
                ( *Puntos ) ++;
                Posicion[F - 1][*Columnas];
            }
            break;
En línea

edotropic

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Ayuda con laberinto en una matriz
« Respuesta #4 en: 20 Diciembre 2013, 02:10 am »

mm, dale. lo intentare muchas gracias
En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Ayuda con laberinto en una matriz
« Respuesta #5 en: 20 Diciembre 2013, 13:29 pm »


Antes que nada cuando postees código elige las etiquetas GeSHi y toma la C++ y en medio de las etiquetas Code que aparecen "pegas" tu código. Al no hacerlo de esta manera parte del código no sale correcta, especialmente las matrices.

Igual te puede interesar este tema que trata de laberintos.


Saluditos! ..... !!!!        
« Última modificación: 20 Diciembre 2013, 16:53 pm por leosansan » 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 3,235 Último mensaje 23 Junio 2010, 19:37 pm
por sebah97
Implementación del camino más corto de la matriz Laberinto de tamaño NxN
Java
charry2012 0 3,360 Último mensaje 13 Septiembre 2012, 06:51 am
por charry2012
Ayuda optimizacion busqueda de salida en laberinto « 1 2 »
Programación C/C++
erest0r 10 6,275 Último mensaje 29 Marzo 2014, 19:18 pm
por erest0r
urgente!ayuda, Laberinto C++
Programación C/C++
RuKsu 7 5,316 Último mensaje 7 Diciembre 2014, 05:41 am
por sebah97
Ayuda, Codigo Laberinto
Programación C/C++
RuKsu 0 2,602 Último mensaje 10 Diciembre 2014, 21:03 pm
por RuKsu
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines