.focuseye
Elige cuál de los nueve ojos tiene el foco: el que se copia en .eyef y el que decide qué describen las celdas ref*.
Datos
- Dirección
- 511
- Nombre
.focuseye- Tipo
- Comando: el bot la escribe y el motor la lee y, en general, la consume
- Grupo
- Ojos
- Quién la escribe
- Tu ADN.
- Quién la lee
- El motor, en la fase de acciones de cada ciclo, al llenar
.eyefy las celdas de lo que se ve. - Cuándo se borra
- Nunca: queda como la dejás.
- Rango
- −32000 a 32000; lo útil es de −4 a 4, y 0 es
.eye5. - Mutaciones
- la eligen como destino de un store
Un número que elige el ojo con foco. En 0 el foco es .eye5; cada unidad corre el foco un ojo hacia la derecha y cada unidad negativa uno hacia la izquierda:
Fuera de ese rango no da error, pero la cuenta es rara: el motor le suma 4, le saca el signo y se queda con el resto de dividir por 9. Así 5 vuelve a .eye1, y −5 da .eye2 igual que −3. Mejor quedarse entre −4 y 4.
El ojo con foco hace dos cosas. Su valor se copia en .eyef, y lo más cercano que ve es lo que describen las celdas de lo que se ve (.refeye, .refnrg, .refxpos…). Si el ojo con foco no ve nada, esas celdas quedan en 0 aunque otro ojo esté viendo algo (salvo que el bot esté chocando con otro: un choque también las llena).
Es configuración: el motor la lee pero nunca la borra, así que alcanza con escribirla una vez. Este bot pone el foco en el ojo de la izquierda y guarda en la celda 50 la energía de lo que ese ojo ve:
cond
*.robage 0 =
start
-4 .focuseye store
stop
cond
*.eyef 0 >
start
*.refnrg 50 store
stop