*<numero> | *.<sysvar>
Un asterisco pegado a un número o a una sysvar apila el contenido de esa celda de memoria: es la forma de leer los sentidos y tus propias variables.
Datos
- Palabra
*<numero> | *.<sysvar>- Familia
- Números y lecturas
- Qué hace
- Apila lo que hay en esa celda de memoria. Un sentido que escribe el motor lo leés en el ciclo siguiente.
- Valor
- La dirección de la celda, de 1 a 1000. Fuera de ese rango se le saca el signo y se toma el resto de dividir por 1000; el 0, o una sysvar mal escrita, lee la 1000.
- Costo
- Cada lectura cobra el costo Lectura *.número (0 con las reglas F1).
- Se ejecuta en
- dentro de un gen: en la condición (cond) y en el cuerpo (start o else)
*50 apila lo que hay en la celda 50; *.nrg apila lo que hay en la celda de .nrg, es decir la energía del bot. Es la palabra con la que un bot se entera de todo: sus sentidos, su estado y lo que guardó en memoria libre.
Algunas cosas que conviene saber:
- Los sentidos llegan con un ciclo de atraso. El motor los publica después de que corre el ADN, así que en el primer ciclo de vida de un bot casi todo se lee en 0 (ver Ejecución y costos).
- La dirección se normaliza. Si está fuera de 1 a 1000, se le saca el signo y se toma el resto de dividir por 1000:
*1050lee la celda 50 y*0lee la 1000. - Una sysvar mal escrita lee la celda 1000.
*.nrggno existe, vale como*0, y apila lo que haya en la 1000 sin avisar (el editor sí te lo marca). - La dirección va escrita en el ADN. Si tiene que salir de una cuenta, usá el operador
*:60 *lee lo mismo que*60, pero el 60 puede venir de la pila.
Este bot avanza solo cuando el ojo central (.eye5) ve algo:
cond
*.eye5 0 >
start
10 .up store
stopCada lectura cuesta Lectura *.número, que con las reglas F1 es 0. Más en Números y direcciones y Memoria libre y epigenética.