Essays.club - Ensayos gratis, notas de cursos, notas de libros, tareas, monografías y trabajos de investigación
Buscar

Implementación Buscaminas en C

Enviado por   •  5 de Diciembre de 2018  •  1.932 Palabras (8 Páginas)  •  316 Visitas

Página 1 de 8

...

La función getMenu es la encargada de imprimir en pantalla el menú del juego, ya sea para iniciar el buscaminas o para salir del programa, retorna un valor 1 o 2 para opt.

La función initGame es la encargada de iniciar el juego, y así mismo de continuar con el mismo en caso de ser así, dentro se declara la variable nb como -1 para que no exista bombas. Con un ciclo while se controla que mientras nb sea menor que 0 o nb sea mayor que 70 se imprima un mensaje que pida el número de combas que el usuario desea que existan en el tablero. Termina el while, y se declaran las variables enteras x,y, se inicia la variable global estado como jugando, la variable global nJugadas se inicia en 0 para saber que no se ha jugado ni una vez, y se manda llamar la función iniArr, después se hace uno de sran(time(NULL)) para enseguida mandar llamar la función randomB, y después se manda llamar la función establecerN, todo esto fue solamente para indicar el tablero, las bombas y para indicar los números.

Después se hace uso de un while, mientras estado es igual a jugando, se inicia el while y se manda llamar boardDisplay, se pide la fila y la columna, ambos datos se almacenan en x,y, se manda llamar a la función recursivePlay(x,y) para que verifique si la coordenada indicada tiene bomba, si no tiene bomba que descubra las casillas aledañas que no contengan bomba etc, se manda llamar a system cls para borrar el estado anterior, se indica que la variable global nJugadas es igual a cJugadas (que lleva el conteo de cuantas casillas se han jugado), se hace uso de un if, si nJugadas es igual a las filas por las columnas MENOS el número de bombas, si cumple estado se declara como ganador. Termina el while, se agrega un if y si estado se ha declarado como perdedor, se imprime la palabra perdiste, solución y se manda llamar la función displayAll, si no cumple se imprime la palabra ganaste, solución y se manda llamar a la función displayAll.

Por ultimo indicamos el main de nuestro programa, dentro declaramos la variable entera opt y la igualamos a 0 para que no haga nada aun, incluimos un do-while, se hace opt igual a getMenu, y un switch para controlar los casos del getMenu, si se indica opt como 1, se manda llamar a initGame, se ciera el do, se manda llamas system cls para borrar lo anterior, y todo esto se hace mientras opt sea diferente de 2.

Resultados

A continuación, se muestra el programa buscaminas en funcionamiento.

[pic 1]

[pic 2]

[pic 3][pic 4]

[pic 5]

Análisis de los resultados

El problema del buscaminas es un ejemplo clásico en la programación. Se tiene que hacer uso de arreglos y de funciones para poder hacer dicho programa, y se puede hacer de una manera muy sencilla, sin muchas líneas de código, pero hay que tener mucha paciencia para lograrlo.

Se puede observar que a la hora de mandar imprimir los resultados del programa todo se ve muy perfecto, realmente todo este acomodado como debe ser, y bien, ahí surgió un problema, dicho problema era que, si se destapaba una casilla, y dicha casilla tenía un 1, no cambiaba mucho el aspecto del tablero en general, pero si imprimía 0, todo lo mandaba amontonado. Esto realmente no era algo grave, simplemente se debía a un “error” al mandar a imprimir, simplemente era necesario incluir algunos espacios entre cada comilla del printf para imprimir correctamente los resultados.

Otro problema grave fue la recursión, sencillamente no se encontraba la manera de poder implementar un ciclo while (con un ciclo while pudo ser un poco más sencillo) para que fuese buscando (o destapando) las casillas del rededor que no contenían bomba. Gracias al profesor, que mostro una recursividad en clase, fue que se pudo implementar dicha recursividad.

Un problema no tan serio fue al momento de pedir la fila y la columna en la cual se deseaba destapar una casilla, ya que al momento de imprimir no mostraba ningún resultado, pero fue un error tan sencillo como lo fue no incluir minefield en boardDisplay.

Discusiones

El programa del buscaminas es un programa clásico el cual se puede resolver con el simple hecho de usar ciclos for, while y do-while, condiciones, algunas funciones y una recursividad no muy complicada. No se obtuvo gran problema al momento de mandar la solución del programa, solamente se obtuvo unos cuantos errores que nos dejan como conclusión que:

1.- Siempre se debe iniciar en 0 una variable que se vaya a usar para almacenar una suma o resta.

2.- Se pueden añadir varias condiciones en un if con el signo de amperson doble (&&).

3.- Se puede usar el operador or para no añadir if.

4.- Es indispensable mandar a imprimir un resultado de suma total de un ciclo for fuera de este, si no, nos mostrara cada uno de los resultados de esta suma paso a paso.

5,- No es indispensable usar while para poder crear una recursividad.

...

Descargar como  txt (11.1 Kb)   pdf (54.2 Kb)   docx (15.4 Kb)  
Leer 7 páginas más »
Disponible sólo en Essays.club