DarwinBotsManual
Abrir la app EnglishEN

store

Guarda un número en una dirección de memoria: así se dan todas las órdenes, como 20 .up store para avanzar.

Datos

Palabra
store
Familia
Escritura en memoria
Pila entera
saca 2, pone 0
Qué hace
Saca una dirección y un valor, y escribe el valor en esa celda, recortado a ±32000 de forma circular: 32001 queda en 1. Con la dirección 0 no escribe, no cobra y el valor queda en la pila.
Costo
Store dividido por el divisor de cada uno, solo si escribe
División del costo
÷ 1
Se ejecuta en
en el cuerpo de un gen (start o else) y solo si el tope de la pila booleana es verdadero o está vacía
Marca lazos
sí

v d store escribe v en la celda d. Es la palabra más común del ADN: cada orden que le das al motor es un store sobre una sysvar.

PalabraPila después
2020
.up20 1
store(vacía); la celda 1 vale 20

Fijate que .up sin asterisco es solo el número 1, la dirección de .up. Si ponés *.up estás apilando lo que hay en esa celda, y el store va a escribir en otro lado (ver Errores frecuentes).

' copia la energía en la celda 50 y empuja hacia adelante
cond
start
 *.nrg 50 store
 20 .up store
stop

La escritura es inmediata: lo que viene después en el mismo ciclo ya lee el valor nuevo. Si escribís una sysvar de sentido, como .nrg, el motor la pisa al final del ciclo; si es una orden, como .up, la usa y la vuelve a 0, así que hay que escribirla en cada ciclo en que la quieras.

Tres detalles:

Para sumar a lo que ya hay, en lugar de reemplazarlo, está addstore.