RYG: función de evaluación – tercera versión

Hay otro criterio que sería muy interesante introducir en la función de evaluación. En teoría, el ratón gana el juego cuando llega a la primera línea del tablero. Sin embargo, en cuanto el ratón rebase la línea de gatos “ya estará todo el pescado vendido”.

Por tanto, si en la función de evaluación metemos un criterio del tipo “si el ratón rebasa la línea de gatos sumar X puntos” estamos consiguiendo que el C64 identifique las victorias del ratón varios movimientos antes de que se produzcan de forma efectiva.

Para conseguir esto mejoramos la función de evaluación con una nueva llamada “jsr evaluaRatonRebasaGatos”:

Rutina evaluaTablero V3

A su vez, la nueva rutina “evaluaRatonRebasaGatos” es así:

Rutina evaluaRatonRebasaGatos

Es decir, obtiene la fila mínima de los gatos con “minFilaGatos” (rutina ya conocida), la fila del ratón con “dameRaton” y “dameFilaCol” (rutinas ya conocidas), compara ambas (instrucción “cmp”) y, si la fila mínima de los gatos es estrictamente menor (instrucción “bcc”) que la fila del ratón, se decide que no hay rebase. En caso contrario, es decir, si la fila mínima de los gatos es mayor o igual que la fila del ratón, entonces se decide que el ratón ha rebasado a los gatos, y se suman $20 = 32 puntos a la evaluación del tablero.

Esta mejora de la función de evaluación puede verse en la versión 17 del proyecto, que todavía juega un poquito mejor.


Código del proyecto: RYG17

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