DarwinBotsManual
Abrir la app EnglishEN

!~=

a b d !~= deja verdadero si b se aleja más de un d % de a. Es la negación de ~= y también saca tres números.

Datos

Palabra
!~=
Familia
Comparaciones
Pila entera
saca 3, pone 0
Pila booleana
saca 0, pone 1
Qué hace
Saca tres números a b d y apila verdadero si b se aleja más del d % de a. Si uno solo de a y d es negativo, da siempre verdadero.
Costo
Condición
Se ejecuta en
dentro de un gen: en la condición (cond) y en el cuerpo (start o else)

a b d !~= saca tres números y apila verdadero cuando b no está dentro del d % de a. Es lo contrario de ~=: 100 130 25 !~= es verdadero y 100 120 25 !~= es falso. La referencia es a, el de más abajo, y el porcentaje va arriba.

Sirve para reaccionar a cambios grandes e ignorar los chicos. Este bot cuenta en la celda 51 los ciclos en que lo que ve el ojo del medio (.eye5) cambió más de un 5 % respecto del ciclo anterior, que guarda en la 50:

' cuenta los ciclos en que lo que ve cambió más de un 5 %
cond
  *50 *.eye5 5 !~=
start
  51 inc
stop

cond
start
  *.eye5 50 store
stop

Fuera del caso de los números enormes que se cuenta abajo, ~= y !~= son complementarios: si le ponés al bot este contador y el de la página de ~=, en cada ciclo suma exactamente uno de los dos.

Como es la negación, hereda al revés las rarezas de ~=: si la referencia o el porcentaje es negativo (uno solo de los dos), da siempre verdadero. Y tiene una diferencia propia: el margen calculado se planta en dos mil millones, cosa que ~= no hace. Solo importa con números enormes, de los que no entran en la memoria; en ese caso ~= y !~= pueden dar los dos verdadero a la vez.

El bot Chaotic Swarm ver 1.2 (SA), del Bestiario, usa !~= con un margen del 5 % para decidir si lo que ve cada ojo cambió. La versión al 10 % fijo es !%=.