Entrega corta, pero los examenes de febrero se acercan y eso combinado con otras circunstancias personales me impiden escribir y programar. En esta tercera parte del capítulo 6 definimos dos elementos de nuestro menú y analizamos los elementos necesarios para la configuración del juego, dejando las puertas abiertas a las funciones para la próxima entrega que pondrá fin este capítulo.

Puesto que el menú de configuración de juego además de ser más complicado, es el paso previo a entrar al juego en si, seguiremos diseñando el apartado de instrucciones y créditos. Estos dos apartados serán muy sencillos, básicamente mostraran texto y esperaran a que el usuario interactue para volver al menú principal.

while Juego.Menu == 3 do
 screen:clear()
 screen:print(10,10,”Este juego...”, Azul)
 screen:flip()
 screen.waitVblankStart()
end
while Juego.Menu == 4 do
	screen:clear()
	screen:print(10,10,”Parejas por Francisco M.C.”, Azul)
	screen:print(10,10,”Sitio Web: http://fmcdev.es”, Azul)
	screen:flip()
	screen.waitVblankStart()
 end

Como veréis he obviado gran parte del código en lo que el mostrado del texto se refiere, pero lo podéis encontrar completo en los archivos fuente.

Pasamos ahora al menú de configuración del juego, en el que se elegirá el modo y los parametros que se asocien al mismo. Recordemos que en el ámbito de este curso el juego tendría tres parametros que el jugador definirá para configurar la partida de la forma que prefiera: limite de movimientos, limite de tiempo, penalización por fallo. Con estas tras variaciones o funcionalidades el usuario puede crear o configurar los modos de juego que hemos comentado antes sin la necesidad de predefinirlos.

Añadiremos estas tres variables a nuestro array de Juego, ya que son los valores que definen la partida y que por tanto servirán de control del juego, objetivo del vector Juego. Sin embargo, los datos actuales de la partida como el tiempo desde que ha empezado o la puntuación, se almacenarán en un array aparte llamado Partida. Como su nombre indica en este vector se almacenarán los datos referentes a una partida concreta, por tanto será necesaria una estructura independiente que desaparecerá una vez finalice la misma.

NOTA: En posteriores capítulos nos encargaremos de almacenar las máximas puntuaciones, ello podría significar la pesistencia de estos datos, pero en ficheros externos y no dentro de la memoría.

Juego = {Estado = 0, Menu = 1, OpcionMenu = 1, Tiempo = false, TMax = 0, Puntuación = false, PuntMax = 0, Penalizacion = false, PenMax = 0}

Partida = {Tiempo =0, Puntuacion = 0} 

La estructura juego recibe dos nuevas variables por parámetro que define el juego. Esto tiene su explicación en que debemos saber si el modo está activado (variable booleana) y si lo está la configuración exacta del valor. Que el usuario pueda elegir el tiempo que tiene para acabar la partida, o la puntuación que debe alcanzar o cuanto le penalizan por cada fallo, aumentará aún más las posibilidades de juego y de personalización, algo que siempre es beneficioso.

Ya sólo nos queda programar el menú de juego. En este caso será algo más complejo que el principal pero seguirá los mismos principios. Para ahorrar código seguiremos usando estructuras array y introduciremos una de las entidades de programación más importantes dentro de la programación estructurada (y en muchos otros ámbitos) que se estudia en este curso: la función o subprograma.