DarwinBotsManual
Abrir la app EnglishEN

sgn

Cambia el número de arriba de la pila por su signo: −1 si es negativo, 0 si es cero y 1 si es positivo.

Datos

Palabra
sgn
Familia
Básicos
Pila entera
saca 1, pone 1
Qué hace
Cambia el tope por su signo: −1 si es negativo, 0 si es cero y 1 si es positivo.
Costo
Comando básico
Se ejecuta en
dentro de un gen: en la condición (cond) y en el cuerpo (start o else)

x sgn deja −1, 0 o 1 según el signo de x. Sirve para quedarse con la dirección de algo y olvidarse del tamaño: hacia qué lado está, si subió o bajó, si hay o no hay.

xx sgn
−250−1
00
371

Combinado con mult da un paso de tamaño fijo en la dirección que haga falta. Este bot guarda en la celda 51 su energía y, en la 50, +5 o −5 según si la energía subió o bajó desde el ciclo anterior (0 si no cambió):

cond
start
  *.nrg *51 sub sgn 5 mult 50 store
  *.nrg 51 store
stop

Para saber solo si un número es distinto de cero (1) o no (0), sin importar el signo, se usa sgn abs; si es para una condición, alcanza con x 0 != (!=). Si lo que querés escribir es el signo en una celda, está sgnstore.