Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Buscaminas en c++

Iniciado por anuska, 20 de Julio de 2006, 08:03:08 PM

« anterior - próximo »

anuska

Hola a todos!!
soy nueva en el foro.

Necesito vuestra ayuda para realizar el juego del buscaminas en c++. Lo tengo que hacer con el visual C++. Espero que me podais ayudar.
Muchísimas gracias!! :wink:

seryu

Hola, pues suerte haciendo el buscaminas, las dudas puntuales que te vayan surgiendo puedes preguntarlas y a ver si te podemos ayudar.

¿Ya sabes como lo vas a empezar?

Sante

Hola, a ver si te puedo ayudar un poco.

Mas que nada, estas son ideas generales, los detalles de la implementación corren por tu cuenta. También asumo que conoces bien como funciona el juego.

Básicamente, la estructura de datos es un array de casillas. Por cada casilla, necesitas guardar:

- Su tipo (mina, blanca, o número)
- Si está o no destapada
- Si está o no marcada

Tienes tres tipos de casilla: minas, casillas blancas, o casillas con números.

Las minas no necesitan mucha explicación. Simplemente indican que en esa casilla hay una mina.

Las casillas blancas son las que no tienen nada en absoluto. Ni una mina, ni están adyacentes a ninguna casilla con mina.

Las casillas con número son las que están adyacentes a una mina (o varias), y el número indica cuántas minas hay al lado. Por tanto, puede ir de 1 a 8.

En mi caso, lo que hice fue guardar el tipo con un entero. Un -1 representaba la mina. Un 0 la casilla blanca, y desde el 1 hasta el 8 las distintas casillas con número. En realidad, eso da igual como lo hagas.


El jugador tiene dos acciones: puede destapar una casilla, o marcar / desmarcar casillas. El juego termina si el jugador destapa una mina (pierde), o bien si el número de casillas por destapar coincide con el número de minas del tablero (gana).

Marcar / desmarcar casillas es trivial, sólo tienes que cambiar el estado de marcada de true a false, o viceversa.

Destapar una casilla es un procedimiento recursivo, que sigue este guión:

- Si la casilla es una mina, se destapa y se acaba la partida.
- Si la casilla es un número, se destapa.
- Si la casilla es una blanca, se destapa, y se llama a destapar para todas las casillas adyacentes que no esten destapadas.
- Las casillas marcadas NUNCA se destapan.


Generar el tablero también es bastante simple. Por cada mina, primero la colocas en una posicion al azar, y despues para todas las casillas adyacentes que no sean mina, incrementas en uno su número (asumiendo que las blancas tienen número 0).


Lo último que queda es hacer el interface, pero como no suelo usar el Visual C++ para hacer ventanas windows, prefiero no decir nada para no liarte...  :roll:

Venga, un saludo.

Mars Attacks

Una respuesta impecable :)

anuska

No había podido ver las respuestas hasta ahora. Pero muchísimas gracias, sante.
Voy a ponerme a ello. Ya os iré contando.  :wink:






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.