C64 BASIC parte 8: goblins que persiguen al jugador y lección sobre un bug de memoria

Fuentes: C64 BASIC Dungeon Crawler: Goblin Attack! (C64 BASIC Part 8)

El octavo capítulo de la serie sobre programación de un dungeon crawler en BASIC para el Commodore 64 introduce los enemigos que se mueven y un sistema de combate basado en tiradas de d20. Hasta ahora los goblins solo eran decoraciones dibujadas en pantalla sin existencia lógica para el programa; ahora se convierten en objetos del juego con posición, salud y un cerebro mínimo que les permite perseguir al jugador. Para ello se utilizan tres matrices paralelas: GX y GY almacenan columna y fila de cada goblin, GH guarda su salud, y GC cuenta cuántos se han colocado. El combate se resuelve con un dado de veinte caras más un modificador de fuerza.

El artículo también incorpora una pantalla de redefinición de teclas que sustituye el esquema fijo QAOP por variables (QKEY$, AKEY$, OKEY$, PKEY$, FKEY$), permitiendo al jugador asignar cualquier tecla, incluidos los cursores. La lectura se hace con GET en lugar de INPUT para aceptar pulsaciones inmediatas sin necesidad de pulsar RETURN.

La pieza dedica una sección destacada a una trampa habitual del BASIC del C64: las variables solo almacenan sus dos primeras letras, de modo que nombres largos colisionan entre sí. Además, el tokenizador interpreta dentro de los nombres de variable cualquier palabra clave BASIC como TO, IF, ON, OR y AND, lo que provoca errores de sintaxis en líneas aparentemente correctas. El autor ilustra el problema con la variable GL, que el tokenizador convierte por error en GO TO. El texto recomienda vigilar los nombres antes de buscar fallos en la lógica del programa.