DarwinBotsManual
Abrir la app EnglishEN

and

Reemplaza los dos valores de arriba de la pila booleana por uno: verdadero solo si los dos lo son.

Datos

Palabra
and
Familia
Lógicos
Pila booleana
saca 2, pone 1
Qué hace
Saca dos valores de la pila booleana y apila verdadero si los dos lo son. Con uno solo lo deja igual; con la pila vacía apila verdadero.
Costo
Lógica
Se ejecuta en
dentro de un gen: en la condición (cond) y en el cuerpo (start o else)

and saca los dos valores de arriba de la pila booleana y apila verdadero si los dos son verdaderos, y falso en cualquier otro caso.

Entre cond y start casi nunca hace falta escribirlo: el start ya une todas las condiciones con un y. Hace falta cuando hay un or en juego, porque cada lógico combina solo los dos de arriba. Este gen cuenta en la celda 50 los ciclos en que (ve algo y no es de su especie) o tiene menos de 10 ciclos de edad:

' (ve a otro y no es de los suyos) o es muy joven
cond
  *.eye5 0 >
  *.refeye *.myeye !=
  and
  *.robage 10 <
  or
start
  50 inc
stop

Corrido solo, sin nada a la vista, la celda 50 llega a 10. Sin el and, el or uniría las dos últimas condiciones y el start haría el y con la primera: «ve algo y (no es de los suyos o es joven)». Como no ve nada, la celda se quedaría en 0.

Dentro del cuerpo, and sirve para que un store dependa de dos condiciones en línea: una condición nueva no se suma a la anterior, la tapa (ver Condiciones en línea).

Con un solo valor en la pila, and lo deja tal cual; con la pila vacía apila verdadero. Para combinar números bit a bit, el operador es &.