[ Foro de Pascal ]

ayuda con buscaminas

14-Apr-2013 20:29
Invitado (marcos perez)
4 Respuestas

Hola, queria ayuda en este ejercicio, es que tengo examen y la verdad no se como resolverlo alguien que pudiera ayudarme a resolverlo o darme orientacion me seria muy importante,gracias por cuaquier ayuda que me puedan brindar

El juego ?BUSCAMINAS? se juega sobre un tablero de tamaño MxN (se supondrá que M y N son constantes) donde sólo se pueden almacenar dos valores: 0 si la casilla está va-cía y -1 que representa la existencia de una mina en esa posición. Se pide:

Especificar un subprograma que, dada una posición del tablero (x, y), devuelva -1 si en la posición hay una mina, y en caso contrario, el número de minas que existen a su alrededor.
Implementar dicho subprograma en Pascal.
ejemplo

0   0   0   0    0
-1   0   0  -1   -1
-1   0  -1  -1   -1
0   0   0   0    0
-1   0   1   0    0
-1   0   1   0    0


posicion        salida esperada
 2,4                -1
 2,2                 3
 6,5                 0
 1,1                 1  


14-Apr-2013 21:00
Nacho Cabanes (+30)

Faltan detalles sobre qué sabes hacer, para poder saber qué necesitas, así que te doy pistas puntuales.  ;-D

- El tablero tendrá que ser una matriz de dos dimensiones, cuyos elementos sean números. ¿Sabes crear una matriz bidimensional y darle valores?

Las tienes en el apartado 2.2 del curso de Pascal:

http://www.aprendeaprogramar.com/mod/resource/view.php?id=50

-  Para saber si es una mina, basta consultar una posición de la matriz. Eso lo sabrás en cuanto repases esa parte de los apuntes.

- Para saber las que le rodean, debes consultar 8 posiciones (o menos) de la matriz: la esquina superior izquierda es M-1,N-1; la siguiente posición será M,N-1 y así sucesivamente hasta la esquina inferior derecha, que es la M+1, N+1.

- Con "hacer un subprograma" supongo que se referirán a que crees una función. Tienes los procedimientos y las funciones en el apartado 8.1 y 8.2 del curso:

http://www.aprendeaprogramar.com/mod/resource/view.php?id=136

Prueba y ve preguntando dudas más concretas. ¡Suerte!


15-Apr-2013 19:26
Invitado (marcos)

gracias por responder.
queria pedirte el favor me explicaras por que restas a la fila y columna el 1, para la esquina superior izquierda, disculpa mi ignorancia en ello  soy nuevo en esto de la programacion.si puedes explicarme un poco mas a fondo te l agradezco y claro que he leido tus apuntes.gracias por ayudarme


18-Apr-2013 11:21
Nacho Cabanes (+30)

Perdona el retraso, se me había pasado tu pregunta.

No es algo de programación, sino más bien de matemáticas: un sistema de coordenadas. Si la casilla que miras está en la posición X=3 (columna) e Y=5 (fila), la casilla que está justo encima tendrá coordenadas X=3, Y=4, y la que está a su derecha será X=4, Y=4.

Sumando o restando 1, según el caso, puedes saber las coordenadas de todas las casillas que le rodean.


23-Apr-2013 09:04
Invitado (marcos perez)

gracias, creo haber entendido






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)