3ra Evaluación II Término 2015-2016, Febrero 2016 /FIEC
Tema 3. (40 puntos) Implemente las siguientes funciones:
a. colocarMinas(campo, cantidad, orientacion) que recibe un arreglo tipo matriz llamado campo , cantidad y orientación. Luego, genere cantidad de minas de longitud 3 con orientación horizontal o vertical (dada por el parámetro correspondiente) y las coloque en posiciones aleatorias en el campo. Las minas se representan con números consecutivos entre 1 y cantidad. Las minas no pueden salirse del tablero ni intersectarse con otras minas.
El siguiente ejemplo representa un campo de 10×10, con 5 minas en orientación horizontal.
4 | 4 | 4 | |||||||
1 | 1 | 1 | |||||||
. | |||||||||
. | |||||||||
. | |||||||||
3 | 3 | 3 | |||||||
. | |||||||||
. | |||||||||
5 | 5 | 5 | |||||||
2 | 2 | 2 |
b. avance(campo, puntoInicio, puntoFin) que recibe dos tuplas con coordenadas y retorna los puntos ganados (valor positivo) o perdidos (valor negativo) de acuerdo a las siguientes reglas:
- Si el puntoFin en campo NO contiene una mina: todas las minas adyacentes a puntoInicio se destruyen y gana un punto por cada mina destruida.
- Si el puntoFin en campo contiene una mina: la mina del puntoFin (solo esa) se destruye y el jugador pierde 3 puntos.
En el siguiente ejemplo, el usuario decide moverse del punto A al punto B, las minas en negritas serán eliminadas
4 | 4 | 4 | |||||||
1 | 1 | 1 | |||||||
. | A | ||||||||
. | B | ||||||||
. | |||||||||
3 | 3 | 3 | |||||||
. | |||||||||
. | |||||||||
5 | 5 | 5 | |||||||
2 | 2 | 2 |
Con estas funciones escriba un programa que realice las siguientes tareas:
- Crear el campo de 10×10
- Colocar 5 minas en el campo horizontalmente
- Generar aleatoriamente una posición original válida para el usuario. Esta posición es válida si está vacía y dentro del campo.
- Pedir al usuario las coordenadas destino (fila,columna) y actualizar los puntos de acuerdo a las reglas listadas anteriormente.
- El juego termina cuando el usuario destruye todas las minas o ingresa (‐1,‐1) como coordenadas de destino.
- Al final debe mostrar cuántas casillas con minas destruyó, cuántos puntos acumuló, cuántas casillas con partes de una mina quedan en el tablero y cuántos tipos de minas quedan en el tablero.
Del ejemplo, el usuario destruyó 2 casillas con minas, hizo 2 puntos, existen 13 casillas con minas en el tablero y quedan 5 tipos de minas.
Referencia: 3Eva_IT2006_T4 Juego planta bombas (buscaminas)