DarwinBotsManual
Abrir la app EnglishEN

Ojos

Los nueve ojos del bot, el ojo con foco y las celdas que apuntan y ensanchan cada ojo: cómo ve un bot y qué número le da cada ojo.

DirecciónSysvarTipoResumen
501.eye1SentidoEl ojo centrado 40 grados a la izquierda del frente: vale 0 si no ve nada y más cuanto más cerca está lo que ve.
502.eye2SentidoEl ojo centrado 30 grados a la izquierda del frente: vale 0 si no ve nada y más cuanto más cerca está lo que ve.
503.eye3SentidoEl ojo centrado 20 grados a la izquierda del frente: vale 0 si no ve nada y más cuanto más cerca está lo que ve.
504.eye4SentidoEl ojo centrado 10 grados a la izquierda del frente: vale 0 si no ve nada y más cuanto más cerca está lo que ve.
505.eye5SentidoEl 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.
506.eye6SentidoEl ojo centrado 10 grados a la derecha del frente: vale 0 si no ve nada y más cuanto más cerca está lo que ve.
507.eye7SentidoEl ojo centrado 20 grados a la derecha del frente: vale 0 si no ve nada y más cuanto más cerca está lo que ve.
508.eye8SentidoEl ojo centrado 30 grados a la derecha del frente: vale 0 si no ve nada y más cuanto más cerca está lo que ve.
509.eye9SentidoEl ojo centrado 40 grados a la derecha del frente: vale 0 si no ve nada y más cuanto más cerca está lo que ve.
510.eyefSentidoLo que ve el ojo con foco: repite el valor del ojo que elegiste con .focuseye, o el de .eye5 si no elegiste ninguno.
511.focuseyeComandoElige cuál de los nueve ojos tiene el foco: el que se copia en .eyef y el que decide qué describen las celdas ref*.
521.eye1dirComandoGira el ojo 1 respecto de su lugar de fábrica (40 grados a la izquierda): positivo hacia la izquierda, negativo hacia la derecha; 1256 es una vuelta.
522.eye2dirComandoGira el ojo 2 respecto de su lugar de fábrica (30 grados a la izquierda): positivo hacia la izquierda, negativo hacia la derecha; 1256 es una vuelta.
523.eye3dirComandoGira el ojo 3 respecto de su lugar de fábrica (20 grados a la izquierda): positivo hacia la izquierda, negativo hacia la derecha; 1256 es una vuelta.
524.eye4dirComandoGira el ojo 4 respecto de su lugar de fábrica (10 grados a la izquierda): positivo hacia la izquierda, negativo hacia la derecha; 1256 es una vuelta.
525.eye5dirComandoGira el ojo 5 respecto de su lugar de fábrica (justo adelante): positivo hacia la izquierda, negativo hacia la derecha; 1256 es una vuelta.
526.eye6dirComandoGira el ojo 6 respecto de su lugar de fábrica (10 grados a la derecha): positivo hacia la izquierda, negativo hacia la derecha; 1256 es una vuelta.
527.eye7dirComandoGira el ojo 7 respecto de su lugar de fábrica (20 grados a la derecha): positivo hacia la izquierda, negativo hacia la derecha; 1256 es una vuelta.
528.eye8dirComandoGira el ojo 8 respecto de su lugar de fábrica (30 grados a la derecha): positivo hacia la izquierda, negativo hacia la derecha; 1256 es una vuelta.
529.eye9dirComandoGira el ojo 9 respecto de su lugar de fábrica (40 grados a la derecha): positivo hacia la izquierda, negativo hacia la derecha; 1256 es una vuelta.
531.eye1widthComandoEnsancha el ojo 1: cuanto más ancho, más campo cubre pero menos lejos ve y más chicos son sus números.
532.eye2widthComandoEnsancha el ojo 2: cuanto más ancho, más campo cubre pero menos lejos ve y más chicos son sus números.
533.eye3widthComandoEnsancha el ojo 3: cuanto más ancho, más campo cubre pero menos lejos ve y más chicos son sus números.
534.eye4widthComandoEnsancha el ojo 4: cuanto más ancho, más campo cubre pero menos lejos ve y más chicos son sus números.
535.eye5widthComandoEnsancha el ojo 5: cuanto más ancho, más campo cubre pero menos lejos ve y más chicos son sus números.
536.eye6widthComandoEnsancha el ojo 6: cuanto más ancho, más campo cubre pero menos lejos ve y más chicos son sus números.
537.eye7widthComandoEnsancha el ojo 7: cuanto más ancho, más campo cubre pero menos lejos ve y más chicos son sus números.
538.eye8widthComandoEnsancha el ojo 8: cuanto más ancho, más campo cubre pero menos lejos ve y más chicos son sus números.
539.eye9widthComandoEnsancha el ojo 9: cuanto más ancho, más campo cubre pero menos lejos ve y más chicos son sus números.

Un bot tiene nueve ojos, de .eye1 a .eye9, repartidos como un abanico alrededor de hacia donde apunta (.aim). Cada ojo es una celda que el motor llena en cada ciclo con un número: 0 si no ve nada, y más grande cuanto más cerca está lo que ve. Es el sentido más usado de todos; casi cualquier bot que busca comida o pelea empieza con algo como *.eye5 0 >. Cómo funciona la vista por dentro lo cuenta Visión.

Dónde mira cada ojo

Por defecto cada ojo abarca 10 grados. .eye5 mira justo adelante; los de número más bajo miran a la izquierda y los más altos a la derecha, de a 10 grados: .eye1 está centrado 40 grados a la izquierda y .eye9 40 a la derecha. Entre los nueve cubren 90 grados. Un objeto grande o cercano puede aparecer en varios ojos a la vez.

Qué número dan

El valor depende de la distancia entre los bordes y del alcance del ojo. Con el ojo de fábrica, que llega a unas 1440 unidades:

Distancia entre bordesValor
tocándose o encimados32000
casi tocándoseunos 20700
134100
27825
7104
14301

Cada ojo da el valor de lo más cercano que ve. De noche el alcance baja un 20%, y en modo estanque se acorta con la profundidad.

Configurar los ojos

Los ojos se pueden reapuntar con .eye1dir….eye9dir y ensanchar con .eye1width….eye9width; un ojo más ancho ve menos lejos y da números más chicos a la misma distancia. .focuseye elige cuál es el ojo con foco: su valor se copia en .eyef y lo que él ve llena las celdas de lo que se ve. Todas estas celdas de configuración quedan como las dejás; alcanza con escribirlas una vez, por ejemplo en el primer ciclo:

' ojo frontal un poco más ancho y foco en el ojo frontal
cond
*.robage 0 =
start
35 .eye5width store
0 .focuseye store
stop

Lo que ven los ojos llega con un ciclo de atraso: lo escribe el motor después de mover a todos (ver Ejecución y costos).