RYG: árbol de juego – selección de la profundidad

Una vez que hemos sido capaces de generar el primer nivel del árbol de juego, el siguiente paso ya es generar N niveles, tantos como la profundidad de análisis que se pretenda.

Y como la profundidad de análisis suele ser un parámetro de configuración del juego, se le suele pedir al usuario al arrancar. Y ya de paso le vamos a poner un titulillo, aunque sea cosa sencilla.

Por todo ello, en el programa principal, que está en el fichero “RYG.asm” aparecen estas dos llamadas nuevas (“jsr pintaTitulo” y “jsr solicitaProfundidad”):

Título y profundidad

La primera llamada (“jsr pintaTitulo”) es bien sencilla, y se limita a pintar un título:

Rutina pintaTitulo

La segunda llamada (“jsr solicitaProfundidad”) es un poco más compleja, pero tampoco mucho:

Rutina solicitaProfundidad

La rutina pinta una cadena, lee un byte del teclado, pinta un retorno de carro (13), verifica que el byte leído sea mayor o igual que 1 y menor que 6 y, en caso afirmativo, deposita la profundidad en la dirección “prof”. En caso negativo, vuelve a pedir la profundidad.

A estas alturas de la programación todavía no había echado las cuentas de memoria que vimos en la entrada “RYG: programa principal” así que todavía no era consciente de que con la codificación de 88 bytes por tablero el máximo de niveles era tres. Por eso en el programa veréis que se pide una profundidad entre 1 y 5.

Más adelante, cuando veamos la función de evaluación y cómo mejorarla, veremos que otra alternativa –o más bien otra medida complementaria– es meter más niveles de profundidad de análisis, lo que en nuestro caso pasaría inevitablemente por “comprimir” los tableros, porque el C64 tiene muy poca memoria.

Con estas dos pequeñas mejoras del programa principal, el arranque queda así:

Arranque

En la siguiente entrada, ya con la profundidad seleccionada por el usuario en “prof”, intentaremos generar un árbol de juego de esa profundidad, no de un solo nivel.


Código del proyecto: RYG09

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s