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


 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (Moderadores: Novlucker, seba123neo, kub0x, Eleкtro)
| | | |-+  programa que resuelva el siguiente laberinto en C#
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: programa que resuelva el siguiente laberinto en C#  (Leído 189 veces)
Emily

Desconectado Desconectado

Mensajes: 3


Ver Perfil
programa que resuelva el siguiente laberinto en C#
« en: 19 Marzo 2017, 14:44 »

Tengo mucho tiempo trabajando en un programa y no me queda alguien podría de favor ayudarme
Se los agradeceria mucho


Escribir un programa que resuelva el siguiente laberinto. La entrada es la

coordenada (0,1) y la salida es la coordenada (0,5), los unos representan los

obstáculos y los espacios libres se podrían representar por ceros. El usuario

introduce “A” para avanzar arriba, “B” para avanzar abajo, “D” para avanzar a la

derecha e “I” para avanzar a la izquierda.

Nota: mostrar cada movimiento.

Entrada:

Caracteres: A, B, D o I.

Salida:

Al llegar a la salida del laberinto el programa mostraría lo siguiente

(suponiendo que el valor 2 es el usuario):

1 0 1 1 0 2

1 0 1 1 0 1

1 0 1 1 0 1

1 0 0 0 0 1

1 1 0 1 1 1

Haz llegado a la salida, bien hecho.


· Los títulos deben ser descriptivos (modificado)
· Los temas de C# van en el foro de .NET no de C/C++ (movido)
>aquí las reglas del foro
-Engel Lex


« Última modificación: 19 Marzo 2017, 16:27 por engel lex » En línea

engel lex
CoAdmin
***
Desconectado Desconectado

Mensajes: 10.765



Ver Perfil
Re: programa que resuelva el siguiente laberinto en C#
« Respuesta #1 en: 19 Marzo 2017, 16:28 »

no se hacen tareas, se resuelven dudas, muestra lo que llevas, explica en que te tranca y si tienes errores de compilador copia y pega


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
NEBIRE

Desconectado Desconectado

Mensajes: 101


Ver Perfil
Re: programa que resuelva el siguiente laberinto en C#
« Respuesta #2 en: 20 Marzo 2017, 23:47 »

Básicamente lo que tienes que hacer es esperar a recibir pulsaciones de teclas, de ellas sólo interceptas (examinas) las mencionadas de movimiento.
es decir si se pulsó una de ellas, lo que debes hacer es ver si puede avanzarse en la dirección que la tecla tiene asignada, para saber si puede avanzar, hay que ver si en esa dirección la casilla (bit), a la que se apunta es un 0, si lo es se avanza (desplazas la ficha-peón a dicha casilla y la borras de la casilla previa), en caso contrario no se mueve y adviertes al usuario con algo, por ejemplo un sonido sordo.

Finalmente, cada vez que una ficha se ha movido, tienes que verificar si esa casilla es la de salida (0,5), es decir el bit 1 (empezando por la derecha y contando el 0), del primer 'byte' (ya son bytes quienes guardan el mapa).
Si es la casilla de salida, pones un banderín a true, y si el siguiente movimiento es 'ascender' salió del laberinto entonces muestras el mensaje que te piden, si teniendo el banderín a TRUE, se mueve en otra posición distinta (y digo se mueve, porque si no se mueve, no es una posición va´lida a la que moverse), desactivas el banderín (lo pones a FALSE)...

Una vez que lo entiendas bien, lo puedes simplificar mucho...
En línea

Meta


Desconectado Desconectado

Mensajes: 2.892



Ver Perfil WWW
Re: programa que resuelva el siguiente laberinto en C#
« Respuesta #3 en: 21 Marzo 2017, 15:51 »

Hola:

¿Lo que quieres es esto?


Este tipo de cosas recuerdo hacr un ejemplo de la serpiente, un juego ya viejo, que tienes que usar matrices.

Tutorial matrices.
https://msdn.microsoft.com/es-es/library/aa288453%28v=vs.71%29.aspx?f=255&MSPPError=-2147217396

En tu caso son muchas matrices. Solo tienes que indicar la coordenada para moverte dentro de la matriz y cambiar sus valores automáticamente con el teclado.

Saludos.
En línea

Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/
NEBIRE

Desconectado Desconectado

Mensajes: 101


Ver Perfil
Re: programa que resuelva el siguiente laberinto en C#
« Respuesta #4 en: 21 Marzo 2017, 17:30 »

No necesita gran cosa sobre matrices, tan solo necesita una... que contiene el mapa... y alcaso, solo necesita aceder a un índice, sea para leer o cambiar el dato, para eso no hace falta un manual, se supone que eso es lo mínimo que le habrán enseñado sobre matrices... declararlas, acceder a un índice y cambiarlo.
Además, ya aclara que la salida del laberinto es el 2 (bajo
él habría un 0 en el mapa inicialmente), la entrada es el 0 más a la izquierda en la misma línea.

El trabajo básicamente es operar con bits y realizar comprobaciones.

Tampoco es preciso que cada línea sea un byte, cada posición en el mapa podría ser un entero (un byte, por ejemplo), en tal caso tendrías una matriz de dos dimensiones, y por lo mismo, no precisas trabajar a nivel de bits, si no de bytes. Si el mapa puede llegar a ser mucho más grande, es preferible así (de hecho parece sugerirse, que deba ser así, al parecer un '2' por ahí... (si no lo pusiste tú))

El ejecrcicio pone a prueba tu lógica, o bien te enseña a usar la lógica, si no la tienes elevada.
« Última modificación: 21 Marzo 2017, 17:38 por NEBIRE » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines