DarwinBotsManual
Abrir la app EnglishEN

Números y lecturas

Las dos palabras más simples del ADN: un número, que se apila tal cual, y una lectura con asterisco, que apila lo que hay en una celda de memoria.

Costo: Número el número, Lectura *.número la lectura

OperadorQué hace
<numero>Un número escrito en el ADN, o el nombre de una sysvar sin asterisco, se apila tal cual en la pila entera.
*<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.

Toda cuenta del ADN empieza por apilar algo, y para eso hay dos palabras que no son comandos sino datos:

Son, de lejos, las palabras más frecuentes de cualquier bot. Una condición típica como *.nrg 1000 > tiene una de cada, y un store como 10 .up store tiene dos números: el valor y la dirección. La regla práctica es corta: sin asterisco cuando querés escribir en una sysvar, con asterisco cuando querés saber cuánto vale.

Cuando la dirección no la sabés de antemano sino que sale de una cuenta, la lectura se hace con el operador *, que toma la dirección de la pila.

Este bot muestra la diferencia: en la celda 50 guarda su edad (.robage), que sube de a uno cada ciclo, y en la 51 guarda la dirección de la edad, que es siempre 9.

cond
start
  *.robage 50 store
  .robage 51 store
stop

Cada número cuesta lo que diga Número y cada lectura lo que diga Lectura *.número; con las reglas F1 los dos son gratis (ver Ejecución y costos). Todos los detalles sobre rangos y direcciones están en Números y direcciones.