Memoria (memloc, memval y genética)
Las direcciones para espiar la memoria de otro bot (por la vista o por un lazo) y las de la memoria genética, la que pasa de padres a hijos.
| Dirección | Sysvar | Tipo | Resumen |
|---|---|---|---|
| 0 | Dirección 0 | Interna | Una celda interna que el ADN no puede leer ni escribir: el motor la usa para desviar los ataques de veneno y toxina dirigidos a .delgene. |
| 473 | .memval | Sentido | El contenido de una celda de la memoria del bot que estás viendo; la celda la elegís con .memloc. |
| 474 | .memloc | Comando | Elige qué celda de la memoria del bot que ves se copia en .memval. |
| 475 | .tmemval | Sentido | El contenido de una celda de la memoria del bot atado; la celda la elegís con .tmemloc. |
| 476 | .tmemloc | Comando | Elige qué celda de la memoria del bot atado se copia en .tmemval. |
| 971-975 | Memoria genética instantánea (971-975) | Entrada y salida | Cinco celdas sin nombre que el hijo recibe copiadas del padre en el momento de nacer. |
| 976-990 | Memoria genética diferida (976-990) | Entrada y salida | Quince celdas sin nombre que el hijo recibe del padre de a una por ciclo, mientras siga atado a él por el lazo de nacimiento. |
Este grupo junta tres cosas que tienen que ver con la memoria del bot más allá de sus propias variables.
Espiar la memoria de otro. Dos pares de sysvars te dejan leer una celda cualquiera de la memoria de otro bot. Con .memloc elegís la dirección y en .memval aparece lo que tiene el bot que estás viendo; con .tmemloc y .tmemval es lo mismo, pero con el bot que tenés atado por un lazo. Las dos direcciones (memloc y tmemloc) son de configuración: las escribís una vez y quedan.
El uso más común en el Bestiario es reconocer a los de tu especie: si apuntás .memloc a .dnalen, .memval te dice el largo del ADN del otro, y lo comparás con el tuyo. Así lo hace, por ejemplo, EyeBot de Moonfisher:
' Una sola vez: espiar el largo del ADN del bot que veo
cond
*.memloc 0 =
start
.dnalen .memloc store
stop
' Si lo que veo tiene mi mismo largo de ADN, la celda 50 vale 1
cond
*.eye5 0 >
*.memval *.dnalen =
start
1 50 store
stopTambién sirve para leer variables privadas de un aliado (su celda 50, por ejemplo) o lo que el otro ve con sus ojos.
La memoria genética. Las celdas 971 a 990 no tienen nombre, pero el motor las copia del padre al hijo: las 971–975 al nacer, y las 976–990 de a una por ciclo mientras el hijo siga atado a su padre. Junto con el .timer, son lo único de la memoria que se hereda; la explicación completa está en Memoria libre y epigenética.
La dirección 0. No la alcanza el ADN; el motor la usa como basurero para los ataques que apuntan a .delgene. Ver Dirección 0.