.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
stopEl ojo frontal también se puede reapuntar con .eye5dir y ensanchar con .eye5width.