RYG: jugadas de los gatos – obtención de todas las jugadas válidas #Programación retro del Commodore 64

Ahora que ya somos capaces de generar todas las jugadas válidas de un gato gracias a la rutina "generaJugadasValidasGato", lo siguiente que podemos hacer es mejorar el programa principal "RYG.asm" para:

  • Recorrer los cuatro gatos.
  • Pedir las jugadas válidas de cada gato.
  • Pintar por pantalla las 4 x 2 jugadas (podría haber alguna menos).

Esto lo vamos a hacer sólo de forma temporal, y con el objeto de depurar el programa. Es decir, lo vamos a hacer con la intención de comprobar que el programa genera bien las jugadas válidas de los gatos.

Más adelante dejaremos de hacerlo porque, al contrario que con el ratón, con los gatos no tenemos que comunicar nada ni pedir nada al usuario. Lo que tenemos que hacer es conformar y evaluar un árbol de juego a base de generar jugadas de gatos y ratón en turnos alternos.

Pero, de momento, para pintar las jugadas de los gatos ampliamos el programa "RYG.asm" con la nueva subrutina "pintaJugadasGatos" (recordemos que el programa principal, por claridad, ahora está estructurado en subrutinas):

Programa principal - pinta jugadas gatos

La rutina "pintaJugadasGatos" recorre los gatos desde el 0 hasta el 3 y, para cada uno, llama a la rutina "pintaJugadasGato" (que genera sus jugadas válidas y las pinta):

Rutina pintaJugadasGatos

Por último, la rutina "pintaJugadasGato" es una mera combinación de rutinas ya conocidas:

  • Localiza el gato con "dameGato".
  • Convierte la posición del gato de formato offset a formato (fila, columna) con "dameFilaCol".
  • Genera las jugadas válidas del gato con "generaJugadasValidasGato".
  • Pinta las jugadas válidas (0, 1 ó 2) con "pintaJugada".

El resultado es algo así:

Programa principal - movs gatos

Como se puede observar, el programa genera siete movimientos válidos para los gatos, en vez de ocho, ya que el primer gato, el de la posición (0, 0), sólo puede moverse a la posición (1, 1). Los demás gatos pueden moverse a izquierda y derecha.

Por tanto, parece que el programa genera bien las jugadas del ratón (entradas anteriores) y de los gatos (esta entrada). El lector puede probar a cambiar los gatos de posición en la inicialización (rutina "inicializaTablero"), y comprobar que efectivamente la lista de jugadas cambia y es correcta.

Con estos mimbres ya podemos empezar a generar el árbol de juego, lo cual haremos a partir de la próxima entrada.


Código del proyecto: RYG06


Editar

Josepzin

No hay comentarios:

Publicar un comentario