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

Una vez que ya somos capaces de validar una jugada, el siguiente paso es obtener todas las jugadas válidas del ratón (y sólo las validas). Esto lo conseguimos con la nueva rutina "generaJugadasValidasRaton" del fichero "GenJugadas.asm" que, resumidamente, es una combinación de las rutinas "generaJugadaRaton" y "validaJugada".

La rutina "generaJugadasValidasRaton" está declarada así:

Rutina generaJugadasValidasRaton - parmas

Es decir, recibe como entrada la posición actual del ratón (fila y columna) y devuelve como salida hasta cuatro posiciones válidas.

El cuerpo de la rutina es así:

Rutina generaJugadasValidasRaton - bucle

Es decir, esencialmente es un bucle desde X=0 hasta X=3, donde para cada valor del registro X:

  • Genera la jugada X-ésima del ratón.
  • Valida la jugada, es decir, verifica que el destino está vacío y dentro del tablero.
  • Si es válida (etiqueta "gjvrValida"), almacena la jugada en la tabla de salida.
  • Si no es válida (etiqueta "gjvrNoValida"), almacena ($ff, $ff) en la tabla de salida.

De este modo, al terminar la rutina, en la tabla de salida tenemos las jugadas válidas (nueva fila y columna) o ($ff, $ff) si una jugada es inválida.

De este modo, podemos volver a modificar el programa principal "RYG.asm". En vez de generar todas las jugadas del ratón con "generaJugadaRaton", generamos sólo las válidas con "generaJugadasValidasRaton", y éstas son las que pintamos:

Programa principal - movs válidos ratón

El resultado es así:

Programa principal - movs válidos ratón2

Ahora ya podemos afirmar que, definitivamente, el C64 sabe mover el ratón. Se puede probar a mover el ratón a otra posición inicial y comprobar que los movimientos generados son correctos.

El siguiente paso será pedirle al usuario qué jugada quiere efectuar.


Código del proyecto: RYG03


Editar

Josepzin

No hay comentarios:

Publicar un comentario