DarwinBotsManual
Abrir la app EnglishEN

.eye5

El ojo frontal: vale 0 si no hay nada adelante y más cuanto más cerca está lo que el bot tiene enfrente; es el sentido más usado del ADN.

Datos

Dirección
505
Nombre
.eye5
Tipo
Sentido: el motor la escribe para que el ADN la lea
Grupo
Ojos
Quién la escribe
El motor, en la fase de acciones de cada ciclo, con lo que ve el ojo frontal. Lo leés en el ciclo siguiente.
Cuándo se borra
El motor, en cada ciclo, antes de volver a mirar: si el ojo no ve nada, queda en 0.
Rango
0 a 32000: 0 es no ver nada, 1 el límite del alcance y 32000 tocándose.
Mutaciones
la eligen como lectura (*)

El ojo del medio de los nueve ojos: con la configuración de fábrica mira justo hacia donde apunta el bot (.aim), con un campo de 10 grados. Vale 0 si no ve nada; si ve algo, un número que crece al acercarse: 1 en el límite del alcance (unas 1440 unidades), 100 a unas 134 unidades de borde a borde y 32000 cuando se tocan. La tabla completa está en Ojos.

Es además el ojo con foco de fábrica: mientras .focuseye valga 0, su valor se repite en .eyef y lo que ve es lo que describen las celdas de lo que se ve, como .refeye o .refnrg. Por eso casi todos los bots lo usan para decidir: avanzar si hay algo, disparar si está cerca, comer si es de otra especie.

Lo escribe el motor al final de cada ciclo, después de mover a todos los bots, así que va con un ciclo de atraso: si girás ahora, lo que hay en la nueva dirección lo leés en el ciclo siguiente. Ve bots vivos, vegetales y cadáveres por igual; para saber qué es, mirá las celdas ref*.

El ejemplo empuja hacia lo que tiene enfrente mientras esté lejos y deja de empujar cuando el valor llega a 100. Ojo: dejar de empujar no es frenar; el bot conserva la velocidad que traía y puede terminar chocando:

' acercarse a lo que se ve adelante
cond
*.eye5 0 >
*.eye5 100 <
start
20 .up store
stop

El ojo frontal también se puede reapuntar con .eye5dir y ensanchar con .eye5width.