DarwinBotsManual
Abrir la app EnglishEN

absstore

Le saca el signo a lo que hay en una celda: un negativo pasa a positivo.

Datos

Palabra
absstore
Familia
Escritura en memoria
Pila entera
saca 1, pone 0
Qué hace
Saca una dirección y le quita el signo a la celda: −77 pasa a 77.
Costo
Store dividido por el divisor de cada uno, solo si escribe
División del costo
÷ 8
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
no

d absstore saca la dirección d y deja en la celda el valor absoluto de lo que tenía: −77 pasa a 77, y un positivo queda igual. No toma ningún valor de la pila.

PalabraPila después
5050
absstore(vacía); si la celda 50 tenía −77, ahora tiene 77

Es útil para medir una distancia sin importar el lado:

' guarda en la 50 cuánto se aleja la energía de 5000, para arriba o para abajo
cond
start
 *.nrg 5000 sub 50 store
 50 absstore
stop

Con 3000 de energía (.nrg) la celda queda en 2000, igual que con 7000. Después basta una sola comparación, como *50 500 <, para saber si la energía está cerca de 5000.

Es lo mismo que *50 abs 50 store (ver abs), con menos palabras y a la octava parte del costo de un store. Para cambiar el signo en lugar de sacarlo está negstore.