DarwinBotsManual
Abrir la app EnglishEN

dist

Da la distancia en línea recta desde el bot hasta un punto x y.

Datos

Palabra
dist
Familia
Avanzados
Pila entera
saca 2, pone 1
Qué hace
Saca un punto (x abajo, y arriba) y apila la distancia desde el bot hasta él, en el tamaño real del mundo. Se queda en 2000 millones como máximo.
Costo
Comando avanzado; debugint y debugbool no cuestan
Se ejecuta en
dentro de un gen: en la condición (cond) y en el cuerpo (start o else)

x y dist saca un punto (la x abajo, la y arriba) y apila la distancia desde el bot hasta él. *.refxpos *.refypos dist es la distancia hasta lo que está viendo; con angle sobre el mismo punto se sabe además hacia dónde queda.

Este bot anota dónde estaba al empezar (.xpos y .ypos en las celdas 50 y 51) y, cada vez que se aleja más de 300 de ese lugar, vuelve a apuntar hacia allá:

cond
  *.robage 1 =
start
  *.xpos 50 store
  *.ypos 51 store
stop

cond
  *.robage 1 >
  *50 *51 dist 300 >
start
  *50 *51 angle .setaim store
stop

cond
start
  10 .up store
stop

La posición se anota con .robage en 1 y no en 0 porque en el primer ciclo *.xpos todavía vale 0.