[ Foro de Pascal ]
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
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!
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
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.
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.)