Autor
|
Tema: Ayuda con laberinto en una matriz (Leído 4,774 veces)
|
edotropic
Desconectado
Mensajes: 3
|
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
Mensajes: 5
|
NO estoy seguro pero esto quizás te sirva... #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
Mensajes: 3
|
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
Mensajes: 5
|
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: 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
Mensajes: 3
|
mm, dale. lo intentare muchas gracias
|
|
|
En línea
|
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[Ayuda] Necesito el Laberinto de MCKSys Argentina
Programación Visual Basic
|
sebah97
|
5
|
3,483
|
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,472
|
13 Septiembre 2012, 06:51 am
por charry2012
|
|
|
Ayuda optimizacion busqueda de salida en laberinto
« 1 2 »
Programación C/C++
|
erest0r
|
10
|
6,734
|
29 Marzo 2014, 19:18 pm
por erest0r
|
|
|
urgente!ayuda, Laberinto C++
Programación C/C++
|
RuKsu
|
7
|
5,637
|
7 Diciembre 2014, 05:41 am
por sebah97
|
|
|
Ayuda, Codigo Laberinto
Programación C/C++
|
RuKsu
|
0
|
2,783
|
10 Diciembre 2014, 21:03 pm
por RuKsu
|
|