Buscaminas

Volver a San Andrés 2010-01 =Buscaminas= Buscaminas es un juego para un solo jugador que consiste en encontrar minas ocultas bajo los cuadros de una matriz. Al principio del juego todo el tablero del juego está oculto, a medida que una celda se destapa, se muestran unos números que indican cuantas minas hay en su vecindad, es decir, cuántas minas hay en los ocho vecinos que tiene la celda numerada. (Saber más) toc =Proyecto= Este proyecto se desarrolló en C++ y en Processing.

Integrantes
Keyner Jiménez Miguel Álvarez

Programa
media type="custom" key="7594921"

Código fuente


Programa en C++ =Enunciado del problema=

BUSCAMINAS Buscaminas es un juego para un solo jugador que consiste en encontrar minas ocultas bajo los cuadros de una matriz. Al principio del juego todo el tablero del juego está oculto, a medida que una celda se destapa, se muestran unos números que indican cuantas minas hay en su vecindad, es decir, cuántas minas hay en los ocho vecinos que tiene la celda numerada. Realice un programa que permita jugar buscaminas, debe permitir dos opciones de juego, una usando un tablero de 9x9 conteniendo 10 minas y otra un tablero de 15x15 conteniendo 30 minas. El juego debe contar el tiempo que se demora el jugador en encontrar las minas y debe almacenar los cinco mejores resultados en archivo. Cada vez que se inicie una partida, el tablero debe ser generado de forma aleatoria y poner los números correctamente, además si el jugador hace clic en una celda que no contiene números, todas las celdas que no tengan números y que estén conectadas entre sí se deben destapar, destapando también una línea más de celdas donde se encuentran los números.

=Documento entregado=

**BUSCAMINAS** He aquí un breve recuento de lo que es el juego “buscaminas” y el desarrollo del proyecto en donde se indica el material utilizado y las dificultades encontradas en este.

**OBJETIVOS**

Implementar en C++ el conocido juego de buscaminas. Este juego se basa en un tablero con fichas ocultas “una matriz” en el cual se esconde un número de minas, el resto del tablero le da información “guarda datos” de las minas vecinas al jugador. El objetivo del juego es tratar de destapar todas las casillas sin minas siguiendo los datos que te dé el tablero, pero si pisas una mina el juego se acaba y pierdes. Los objetivos que se pretenden alcanzar con este proyecto en esta asignatura son aplicar todo lo aprendido hasta el momento en programación de computadoras, diseñando un programa que interactué con el usuario, así como reforzar nuestro conocimiento en el tema aprendiendo cosas que no se presentaron claramente en el curso. **Herramientas utilizadas** He trabajado en el sistema con el compilador eclipse galileo versión 4.9.7.0. del lenguaje C++ Las librerías utilizadas son: ,  Es una librería de operaciones matemáticas básicas y complejas. Esta librería la he utilizado en el proyecto cuando cree la función poner minas en donde las posiciones de las minas fueran siempre distintas cada vez que comience un juego nuevo
 * **MATH.H**

**Descripción del proyecto** El proyecto se compone de siete procedimientos y solo en el orden en que están escritas el proyecto puede funcionar. Bueno a falta de tiempo no se le pudo colocar las banderitas por lo que se tiene que jugar evadiendo las minas. No hay ningún tipo de marcas para las minas solo los datos que te ofrece el juego. **Dificultades encontradas** En la realización del proyecto el mayor de mis dificultades fue la de destapar los vecinos de cero, ya que esta necesitaba una función recursiva la cual no es mi fuerte por lo que retraso un poco la realización del programa, pero esta se supero satisfactoriamente al poner un poco de racionalización en el programa En un segundo plano el colocarles datos a los vecinos de las minas fue todo un camellón, pero esta también fue superada.
 * En el procedimiento inicializar ( inicializar ) se crea un tablero vacio inicializados con “__” . este no se mostrara en el juego solo es para crear la matriz.
 * el procedimiento poner minas ( ponerMinas ) en esta se implementa parte de inicializar para rellenar en campo con las 10 minas con que se juegan normalmente.
 * el procedimiento llenar con minas (llenarconMinas ) se utiliza la librería math.h para que la posición de las minas sean aleatoria.
 * el procedimiento inicializar tapa (inicializarTapa ). Este lo que hace es crear una matriz del mismo tamaño de la primera matriz.
 * En el procedimiento imprimir tapa (imprimirTapa ). Esta es la mesa del juego visible en donde el usuario va a interactuar.
 * En el procedimiento procesar posición (procesarPosicion ). Esta es la vida del juego esta dependiendo de lo que haya en la posición elegida mostrara en el procedimiento imprimir tapa una reacción diferente.
 * en el caso en el que la posición elegida sea igual a una mina se destapa la mina en el tablero del juego y se acaba el juego con la frase “YA PERDISTE JEJEJEJEJE”.
 * en cambio si la posición elegida es un número diferente a cero se destapara el numero e imprimirá en tapa y puedes seguir jugando.
 * por otro lado sino es ninguna de las dos anteriores esta entra en un sub procedimiento llamado destapar ceros (destaparCeros ) el cual se encarga de destapar los vecinos de este y a su vez destapar los vecinos de este que cumplan la condición de ser diferentes de mina y números.

**Posibles mejoras** No me dio tiempo pero el programa debería guardar la información de las puntuaciones en algún fichero para no perderla al terminar el programa. A parte de esto también me hubiera gustado mejorar bastante la presentación del juego, que el logaritmo fuese sido más simple.

=Póster=