DarwinBotsManual
Abrir la app EnglishEN

sqrstore

Cambia lo que hay en una celda por su raíz cuadrada redondeada; si no es positivo, la deja en 0.

Datos

Palabra
sqrstore
Familia
Escritura en memoria
Pila entera
saca 1, pone 0
Qué hace
Saca una dirección y deja en la celda su raíz cuadrada, redondeada al entero más cercano. Si tenía 0 o un negativo, queda en 0.
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 sqrstore saca la dirección d y deja en la celda la raíz cuadrada de lo que tenía, redondeada al entero más cercano. No toma ningún valor de la pila.

PalabraPila después
5050
sqrstore(vacía); si la celda 50 tenía 50, ahora tiene 7

La raíz sirve para achicar números grandes sin perder el orden: 3000 queda en 55 y 30000 en 173.

' empuja hacia adelante según la raíz de su energía
cond
start
 *.nrg 50 store
 50 sqrstore
 *50 .up store
stop

Con 3000 de energía (.nrg) el bot pide 55 con .up; con menos energía, menos. En el primer ciclo pide 0, porque los sentidos todavía no se publicaron y *.nrg lee 0 (ver Ejecución y costos).

Si la celda tiene 0 o un negativo, queda en 0: no da error. Es lo mismo que *50 sqr 50 store (ver sqr), con menos palabras y a la séptima parte del costo de un store.