Autor
|
Tema: programa que resuelva el siguiente laberinto en C# (Leído 5,100 veces)
|
Emily
Desconectado
Mensajes: 18
|
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 pm por engel lex »
|
En línea
|
|
|
|
engel lex
|
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.
|
|
|
Serapis
|
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
|
|
|
|
|
Serapis
|
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 pm por NEBIRE »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Busco el Link de el siguiente programa
Software
|
Tzdah
|
1
|
1,775
|
19 Septiembre 2012, 02:34 am
por Eleкtro
|
|
|
Programa que resuelva sistema de ecuaciones [URGENTE]
Programación C/C++
|
Ater277
|
2
|
2,938
|
7 Diciembre 2012, 00:52 am
por twins
|
|
|
programa en C++ que resuelva ecuacion cuadratica
Programación C/C++
|
dariomega
|
5
|
61,367
|
3 Agosto 2013, 04:19 am
por dariomega
|
|
|
Programa resolución laberinto en C
Programación C/C++
|
Leafar77
|
4
|
13,192
|
19 Noviembre 2014, 23:57 pm
por engel lex
|
|
|
programa en c que resuelva expresiones matematicas por ejemplo []{}
Programación C/C++
|
@krao
|
1
|
1,940
|
9 Mayo 2018, 01:21 am
por Serapis
|
|