RetroProgramming Italia – RP Italia

Recientemente he descubierto un grupo que me parece muy interesante. Se trata de RetroProgramming Italia – RP Italia. Es el primer grupo italiano que se ocupa de la programación retro de todos los ordenadores de 8 y 16 bits y, en particular, de nuestro querido Commodore 64.

Os dejo su dirección de Facebook:

https://www.facebook.com/groups/retroprogramming/?ref=share

Se trata de un grupo privado, por lo que deberéis solicitar uniros al grupo.

Aunque las entradas lógicamente están escritas en italiano se entienden bastante bien. Y además el BASIC y el ensamblador del 6510 son lenguajes universales 😉 .

¡¡Que lo disfrutéis!!

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