DarwinBotsManual
Abrir la app EnglishEN

pyth

Da la hipotenusa de los dos números de arriba de la pila, la raíz de a² + b²: el largo de un vector.

Datos

Palabra
pyth
Familia
Avanzados
Pila entera
saca 2, pone 1
Qué hace
Saca dos números a y b y apila la raíz de a² + b², redondeada. 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)

a b pyth deja la raíz cuadrada de a² + b², redondeada: el teorema de Pitágoras. 3 4 pyth da 5. El orden no importa, y el signo tampoco.

Sirve para el largo de cualquier vector del que tengas las dos componentes. Por ejemplo, la rapidez del bot a partir de su velocidad hacia adelante (.velup) y hacia el costado (.veldx):

cond
start
  *.velup *.veldx pyth 50 store
stop

(Para la rapidez en particular ya existe .velscalar, que el motor calcula por vos.)

Con diferencias de coordenadas da una distancia: *.refxpos *.xpos sub *.refypos *.ypos sub pyth da casi lo mismo que *.refxpos *.refypos dist en un mundo de tamaño normal, pero dist lo hace en una sola palabra y usa la posición exacta del bot en ese momento, no la de .xpos y .ypos, que llega con un ciclo de atraso.