RYG: programa principal #Programación retro del Commodore 64

Hasta ahora tenemos:

Por tanto, lo siguiente es ya ponernos manos a la obra con el programa principal. Este programa lo definimos en el fichero "RYG.asm" y de momento hace muy poca cosa:

Programa principal

Es decir, el programa principal tiene un cargador BASIC en $801 (10 SYS 2064) y se carga a partir de $810. Hace esto:

  • Inicializa un tablero llamado "tableroActual".
  • Pinta "tableroActual".
  • Y termina con "rts".

La etiqueta "tableroActual" apuntará al tablero actual, es decir, al tablero que contiene la situación actual de la partida. Como no vamos a llevar un registro de jugadas no nos hace falta una lista enlazada de tableros; nos llega con el tablero actual.

Esta etiqueta no está definida en "RYG.asm", sino que está definida en otro fichero: el fichero "Arbol.asm". En este fichero iremos metiendo más etiquetas (es decir, más variables), no sólo para el tablero actual, sino también para el árbol de juego.

TableroActual

Y dado que el árbol de juego va a crecer, se va a tomar una decisión de juego sobre él, se va a tirar, se va a generar otro árbol de juego, y así sucesivamente, necesita memoria libre que no esté ocupada por código. Por eso es importante que el fichero "Arbol.asm" vaya al final de la lista de construcción del proyecto (en CBM prg Studio menú Project > Properties):

Build

De hecho, deberíamos hacer una estimación, aunque sea aproximada, de la memoria que vamos a necesitar en función de la profundidad del árbol. Los gatos tienen un máximo de ocho movimientos y el ratón de dos, aunque no todos los movimientos son posibles siempre. Así:

  • 1 nivel => 85 bytes x 8 movimientos = 680 bytes.
  • 2 niveles => 85 bytes x 8 x 4 = 2720 bytes.
  • 3 niveles => 85 bytes x 8 x 4 x 8 = 21760 bytes.
  • 4 niveles => 85 bytes x 8 x 4 x 8 x 4 = 87040 bytes.

Es decir, todo parece indicar que, con esta estructura de datos, lo máximo a lo que vamos a poder llegar es a 3 niveles de profundidad. Para llegar a 4 niveles, es decir, a 8 x 4 x 8 x 4 = 1024 tableros, harían falta casi 87 KB que lógicamente no están disponibles. Pero sí sería posible diseñar una estructura de datos más compacta.

Bueno, el resultado del programa principal, de momento, es el ya conocido: un tablero inicializado y pintado por pantalla. Poco a poco vamos construyendo.


Código del proyecto: RYG01


Editar

Josepzin

No hay comentarios:

Publicar un comentario