DarwinBotsManual
Abrir la app EnglishEN

Comparaciones

Las preguntas del ADN: sacan números de la pila entera y dejan un verdadero o un falso en la booleana. Igual, distinto, mayor, menor y las comparaciones aproximadas.

Costo: Condición

OperadorQué hace
<a b < deja verdadero si a es menor que b. La comparación de «todavía no llegó a».
>a b > deja verdadero si a es mayor que b. Es la de *.eye5 0 >, «veo algo».
=a b = deja verdadero si los dos números son iguales. La de *.eye5 0 =, «no veo nada».
!=a b != deja verdadero si los dos números son distintos. La de *.refeye *.myeye !=, «no es de los míos».
%=a b %= deja verdadero si b está dentro del 10 % de a, límites incluidos. Con a negativo da siempre falso.
!%=a b !%= deja verdadero si b se aleja más de un 10 % de a. Es la negación exacta de %=, así que con a negativo da siempre verdadero.
~=a b d ~= deja verdadero si b está dentro del d % de a: un «más o menos igual» con el margen que elijas. Saca tres números.
!~=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.
>=a b >= deja verdadero si a es mayor o igual que b: como >, pero el límite también cuenta.
<=a b <= deja verdadero si a es menor o igual que b: como <, pero el límite también cuenta.

Cada comparación saca números de la pila entera y deja un resultado, verdadero o falso, en la pila booleana. Se leen de izquierda a derecha: a b > pregunta «¿a es mayor que b?». Hay tres grupos:

Casi siempre van entre cond y start, donde todas las que pongas se unen con un y: el cuerpo del gen corre solo si todas son verdaderas (lo cuenta Genes: cond, start, else y stop). Así se arma un rango con dos comparaciones. Este gen corre solo entre los ciclos 10 y 20 de vida del bot (.robage), ambos incluidos, y cuenta en la celda 50 cuántas veces corrió (11):

cond
  *.robage 10 >=
  *.robage 20 <=
start
  50 inc
stop

Para pedir «esto o aquello» hay que combinarlas con or; los demás lógicos están en Lógicos. Una comparación también puede ir dentro del cuerpo, y entonces decide si corren los stores que la siguen: eso es Condiciones en línea.

Ninguna falla: si a la pila entera le faltan números, comparan ceros. Por eso = sobre una pila vacía da verdadero (0 es igual a 0) y < da falso.

Cada comparación ejecutada cobra el costo Condición de la configuración del escenario.