DarwinBotsManual
Abrir la app EnglishEN

!=

a b != deja verdadero si los dos números son distintos. La de *.refeye *.myeye !=, «no es de los míos».

Datos

Palabra
!=
Familia
Comparaciones
Pila entera
saca 2, pone 0
Pila booleana
saca 0, pone 1
Qué hace
Saca dos números y apila verdadero si son distintos. Con la pila vacía da falso.
Costo
Condición
Se ejecuta en
dentro de un gen: en la condición (cond) y en el cuerpo (start o else)

a b != saca dos números y apila verdadero si son distintos y falso si son iguales. Es exactamente lo contrario de =: 3 4 != es verdadero y 3 3 != es falso.

Su uso más conocido es no atacar a la propia especie. .refeye es la cantidad de lecturas de ojo en el ADN de lo que el bot está mirando y .myeye la del propio bot; si difieren, casi seguro es otra especie. Este gen dispara (.shoot) solo si ve algo (.eye5) y no es de los suyos:

' dispara a lo que ve, si no es de su especie
cond
  *.eye5 0 >
  *.refeye *.myeye !=
start
  -1 .shoot store
stop

La inversa no es tan segura: dos especies distintas pueden tener, por casualidad, la misma cantidad de ojos.

También sirve para detectar cambios: *.eye5 *50 != es verdadero cuando lo que ve el ojo del medio cambió respecto de lo que guardaste en la celda 50. Si el cambio tiene que superar un margen, usá !%= o !~=.

Con la pila entera vacía compara 0 con 0 y da falso. Las demás comparaciones están en Comparaciones.