DarwinBotsManual
Abrir la app EnglishEN

negstore

Le cambia el signo a lo que hay en una celda: 20 pasa a −20 y −20 a 20.

Datos

Palabra
negstore
Familia
Escritura en memoria
Pila entera
saca 1, pone 0
Qué hace
Saca una dirección y le invierte el signo a la celda: 20 pasa a −20.
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 negstore saca la dirección d y le invierte el signo a lo que haya en la celda. No toma ningún valor de la pila.

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

Aplicado en cada ciclo, hace oscilar un valor entre dos extremos:

' avanza meneándose: gira 20 a un lado y 20 al otro, ciclo por medio
cond
 *50 0 =
start
 20 50 store
stop
start
 50 negstore
 *50 .aimdx store
 10 .up store
stop

El primer gen carga 20 la primera vez. Desde ahí la celda 50 alterna entre −20 y 20, y el bot gira con .aimdx para un lado y para el otro mientras avanza con .up.

Es lo mismo que -1 50 multstore (ver multstore), pero más barato: la octava parte del costo de un store. Ojo con .tieang1 y .tielen1: negstore cambia el número, pero el lazo no se entera; ahí usá -1 .tieang1 multstore (ver Escribir en la memoria).