Alters

A buscar M!nas: análisis teórico del modo de juego


Hola de nuevo!

Hoy trataremos de ver qué aspectos son necesarios para hacer un juego de buscar minas.

Este paso servirá para que, a la hora de diseñar y codificar, podamos liarnos menos con lo que hacemos.

Para empezar, veamos la interfaz que usa windows (img1)

img1
He marcado algunas áreas de color rojo. Estas son:

 - Título e icono (arriba izquierda)
 - Menú (debajo del título y el icono)
 - Tiempo (abajo izquierda)
 - Contador (abajo derecha)

Aparte de estos elementos, tenemos el campo de juego, hecho con botones y etiquetas.

Es por la gran cantidad de elementos que hay que decidí hacer el proyecto con VB.net; posee una buena interfaz gráfica para diseñar en un "pis-pas". También se que VB.net no es uno de los lenguajes de programación más óptimo, pero es de desarrollo rápdio; y para un juego de minas poco hace falta...

Sigamos con el análisis: ¿Qué tenemos que tener en cuenta? Os dejo una pequeña lista preliminar de los elementos que tendremos que tener en cuenta:

 - Dificultad
 - Minas marcadas
 - Tiempo
 - Posición minas

Por ahora parece todo correcto, ¿no?; necesitamos como mínimos estos datos para construir mentalmente nuestro juego.

Bien, yo puse una pequeña contribución, y, para que fuese más interesante, puse un fondo aleatorio. Este fondo aleatorio varía en función de una opción añadida.

Seré sincero: los fondos son hentai o yaoi, dependiendo de la opción marcada. No obstante, cambiaré los fondos y las opciones a la hora de subir el proyecto; tampoco publicaré los fondos... (para eso tenéis "Ctrl+shift+N" ;-) )

Siguiendo con los cambios que hice, la elección de dificultad la extraje del menú y la puse en un pop-up; con esto me ahorro tener que hacer un menú, dejando más espacio para las minas (y el fondo).

De momento tampoco hay tiempo, ya que el tema de los "timers" con VB.net va algo raro... no obstante se puede incluír sencillamente (es más, en cuanto os vaya mostrando el proyecto, pondré el tiempo).

Finalmente, añadí un pop-up que sale cuando pisas una mina. Este pop-up no se puede cerrar e impide cerrar la ventana (está hecho así a propósito). Así que tocará ir ad task manager y cerrar el proceso...

Ahora que está todo especificado, revisemos lo que nos hace falta para el proyecto:

 - Botones
 - Etiquetas
 - Timer
 - Pop-up
 - Imágenes

El tema de las imágenes es un tanto peliagudo; como queremos un buen "background", modificaremos el tamaño de la ventana acorde el tamaño del "background". Esto a su vez impica que los controles variarán de tamaño.

Además, dependiendo del nivel de dificultad, la cantidad de cuadros variará, por lo que variará también el tamaño de los mismos.

Es por eso que tenemos que guardar también el ancho y el largo de los controles.

Ahora ya tenemos todo listo para empezar con lo duro: el análisis real.

Dejo un esquema de lo que hace a grandes rasgos el juego

  • Pide dificultad y opción
    • Dependiendo de la opción carga una imágen
    • Dependiendo de la dificultad cambia:
      • num. minas
      • num. ancho
      • num. alto
    • Dependiendo de la dificultad y la imagen cambia:
      • alto cuadro
      • ancho cuadro
      • alto etiqueta
      • ancho etiqueta
  • Generamos minas
  • Generamos botones
  • Generamos etiquetas
  • Generamos eventos para botón

El evento principal es el click del ratón. Cuando este suceda, nuestro programa hará lo siguente:

  • Si es click izquierdo
    • Vaciamos botón
    • Si es mina mostramos el fallo
    • Si no es mina y están todas las minas marcadas ganamos
  • Si es click derecho
    • Si el botón está marcado como mina lo desmarcamos y descontamos una mina
    • Sino, lo marcamos y añadimos una mina

Con esto tenemos suficiente para desarrollar unos buenos algoritmos. Pero eso será en la próxima entrada.

Nos vemos,
Hasta la próxima!