DarwinBotsManual
Abrir la app EnglishEN

sgnstore

Cambia lo que hay en una celda por su signo: −1 si es negativo, 0 si es cero, 1 si es positivo.

Datos

Palabra
sgnstore
Familia
Escritura en memoria
Pila entera
saca 1, pone 0
Qué hace
Saca una dirección y deja en la celda solo su signo: −1, 0 o 1.
Costo
Store dividido por el divisor de cada uno, solo si escribe
División del costo
÷ 7
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 sgnstore saca la dirección d y deja en la celda solo el signo de lo que tenía: −1, 0 o 1. No toma ningún valor de la pila.

PalabraPila después
5151
sgnstore(vacía); si la celda 51 tenía −77, ahora tiene −1

Sirve para quedarte con la dirección de un cambio y olvidarte del tamaño:

' la 51 queda en -1, 0 o 1 según la energía haya bajado, seguido igual o subido
cond
start
 *.nrg *50 sub 51 store
 51 sgnstore
 *.nrg 50 store
stop

La celda 50 guarda la energía (.nrg) del ciclo anterior. La diferencia va a la 51 y sgnstore la reduce a su signo. Un bot que está gastando energía ve −1 ahí casi todos los ciclos. El valor ya hecho −1, 0 o 1 se puede multiplicar después por lo que quieras.

Es lo mismo que *51 sgn 51 store (ver sgn), con menos palabras y a la séptima parte del costo de un store.