DarwinBotsManual
Abrir la app EnglishEN

or

Reemplaza los dos valores de arriba de la pila booleana por uno: verdadero si alguno lo es. La única forma de pedir «esto o aquello».

Datos

Palabra
or
Familia
Lógicos
Pila booleana
saca 2, pone 1
Qué hace
Saca dos valores de la pila booleana y apila verdadero si alguno lo es. Con uno solo, o 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)

or saca los dos valores de arriba de la pila booleana y apila verdadero si alguno de los dos (o los dos) es verdadero. Solo da falso si los dos son falsos.

Es el lógico que más hace falta, porque entre cond y start el y es automático pero el o no. Este bot se escapa hacia atrás (.dn) si tiene poca energía (.nrg) o si lo que ve tiene en su ADN más lecturas de ojo que él (.refeye, .myeye), una forma rústica de medir al otro:

' retrocede si está débil o si el otro parece más grande
cond
  *.eye5 0 >
  *.nrg 500 <
  *.refeye *.myeye >
  or
start
  20 .dn store
stop

or combina solo los dos de arriba; el .eye5 de más abajo queda para el start, que lo une con y. Se lee: «ve algo, y (está débil o el otro parece más grande)».

Con la pila vacía también apila verdadero. Para el o bit a bit entre números está |; el o que excluye el caso de los dos verdaderos es xor.