<numero> | Números y lecturas | Un número escrito en el ADN, o el nombre de una sysvar sin asterisco, se apila tal cual en la pila entera. |
*<numero> | *.<sysvar> | Números y lecturas | Un asterisco pegado a un número o a una sysvar apila el contenido de esa celda de memoria: es la forma de leer los sentidos y tus propias variables. |
add | Básicos | Suma los dos números de arriba de la pila entera y deja el resultado. |
sub | Básicos | Resta el número de arriba de la pila al que está debajo: a b sub deja a − b. |
mult | Básicos | Multiplica los dos números de arriba de la pila entera; si el producto pasa de 2000 millones, se queda en ese tope. |
div | Básicos | Divide el número de abajo por el de arriba y redondea al entero más cercano (al par en el empate); dividir por cero da 0. |
rnd | Básicos | Cambia el número de arriba de la pila por uno al azar entre 0 y ese número, ambos incluidos. |
* | Básicos | Lee la memoria en una dirección calculada: saca una dirección de la pila y apila lo que hay en esa celda. |
mod | Básicos | Deja el resto de dividir el número de abajo por el de arriba, con el signo del dividendo; con divisor 0 da 0. |
sgn | Básicos | Cambia el número de arriba de la pila por su signo: −1 si es negativo, 0 si es cero y 1 si es positivo. |
abs | Básicos | Cambia el número de arriba de la pila por su valor absoluto: le saca el signo. |
dup | Básicos | Duplica el número de arriba de la pila entera, para usarlo dos veces sin volver a leerlo ni calcularlo. |
drop | Básicos | Saca el número de arriba de la pila entera y lo descarta. |
clear | Básicos | Vacía la pila entera de un saque; la pila booleana no la toca. |
swap | Básicos | Intercambia los dos números de arriba de la pila entera: a b swap deja b a. |
over | Básicos | Copia arriba de todo el segundo número de la pila entera: a b over deja a b a. |
angle | Avanzados | Da el ángulo desde el bot hasta un punto x y, en las mismas unidades que .aim: listo para guardarlo en .setaim. |
dist | Avanzados | Da la distancia en línea recta desde el bot hasta un punto x y. |
ceil | Avanzados | Pone un techo: de los dos números de arriba de la pila deja el menor, así x 100 ceil nunca pasa de 100. |
floor | Avanzados | Pone un piso: de los dos números de arriba de la pila deja el mayor, así x 0 floor nunca baja de 0. |
sqr | Avanzados | Cambia el número de arriba de la pila por su raíz cuadrada redondeada; si no es positivo, da 0. |
pow | Avanzados | Eleva el número de abajo a la potencia del de arriba: 2 10 pow da 1024. El exponente se limita a ±10. |
pyth | Avanzados | Da la hipotenusa de los dos números de arriba de la pila, la raíz de a² + b²: el largo de un vector. |
anglecmp | Avanzados | Compara dos ángulos y da la diferencia más corta entre ellos, con signo, entre −628 y 628: cuánto y hacia dónde girar. |
root | Avanzados | Da la raíz b-ésima del número de abajo: 27 3 root da 3. Ignora los signos y, con b en 0, da 0. |
logx | Avanzados | Da el logaritmo del número de abajo en la base del de arriba, redondeado: 1000 10 logx da 3. |
sin | Avanzados | Da el seno de un ángulo en unidades de .aim, multiplicado por 32000: 314 sin da 32000. |
cos | Avanzados | Da el coseno de un ángulo en unidades de .aim, multiplicado por 32000: 0 cos da 32000. |
debugint | Avanzados | Anota el número de arriba de la pila entera para mirarlo desde la consola del bot, sin sacarlo y sin costo. |
debugbool | Avanzados | Anota el valor de arriba de la pila booleana para mirarlo desde la consola del bot, sin costo. |
~ | Bit a bit | Invierte todos los bits del número del tope: x ~ deja −x − 1, así que 5 ~ da −6 y 0 ~ da −1. |
& | Bit a bit | Y bit a bit de los dos números del tope: deja prendidos solo los bits que están prendidos en los dos. Sirve para consultar y apagar marcas. |
| | Bit a bit | O bit a bit de los dos números del tope: deja prendido cada bit que esté prendido en alguno de los dos. Sirve para prender marcas. |
^ | Bit a bit | O exclusivo bit a bit de los dos números del tope: deja prendidos los bits que están en uno solo de los dos. Sirve para dar vuelta marcas. |
++ | Bit a bit | Suma 1 al número del tope de la pila entera, sin tocar la memoria: 5 ++ deja 6. |
-- | Bit a bit | Resta 1 al número del tope de la pila entera, sin tocar la memoria: 5 -- deja 4 y 0 -- deja −1. |
- | Bit a bit | El signo menos suelto le cambia el signo al número del tope: 5 - deja −5. No resta; para restar está sub. |
<< | Bit a bit | Corre los bits del número del tope un lugar a la izquierda, o sea lo multiplica por 2: 5 << deja 10. |
>> | Bit a bit | Corre los bits del número del tope un lugar a la derecha conservando el signo: divide por 2 redondeando hacia abajo, así que 7 >> deja 3 y −5 >> deja −3. |
< | Comparaciones | a b < deja verdadero si a es menor que b. La comparación de «todavía no llegó a». |
> | Comparaciones | a b > deja verdadero si a es mayor que b. Es la de *.eye5 0 >, «veo algo». |
= | Comparaciones | a b = deja verdadero si los dos números son iguales. La de *.eye5 0 =, «no veo nada». |
!= | Comparaciones | a b != deja verdadero si los dos números son distintos. La de *.refeye *.myeye !=, «no es de los míos». |
%= | Comparaciones | a b %= deja verdadero si b está dentro del 10 % de a, límites incluidos. Con a negativo da siempre falso. |
!%= | Comparaciones | a b !%= deja verdadero si b se aleja más de un 10 % de a. Es la negación exacta de %=, así que con a negativo da siempre verdadero. |
~= | Comparaciones | a b d ~= deja verdadero si b está dentro del d % de a: un «más o menos igual» con el margen que elijas. Saca tres números. |
!~= | Comparaciones | a b d !~= deja verdadero si b se aleja más de un d % de a. Es la negación de ~= y también saca tres números. |
>= | Comparaciones | a b >= deja verdadero si a es mayor o igual que b: como >, pero el límite también cuenta. |
<= | Comparaciones | a b <= deja verdadero si a es menor o igual que b: como <, pero el límite también cuenta. |
and | Lógicos | Reemplaza los dos valores de arriba de la pila booleana por uno: verdadero solo si los dos lo son. |
or | Lógicos | Reemplaza los dos valores de arriba de la pila booleana por uno: verdadero si alguno lo es. La única forma de pedir «esto o aquello». |
xor | Lógicos | Reemplaza los dos valores de arriba de la pila booleana por uno: verdadero si exactamente uno de los dos lo es. |
not | Lógicos | Invierte el valor de arriba de la pila booleana: verdadero pasa a falso y falso a verdadero. Sobre la pila vacía da falso. |
true | Lógicos | Apila un verdadero en la pila booleana. Dentro del cuerpo de un gen, vuelve a habilitar los stores que una condición había frenado. |
false | Lógicos | Apila un falso en la pila booleana. En la condición de un gen lo apaga; en el cuerpo frena los stores que siguen. |
dropbool | Lógicos | Saca y descarta el valor de arriba de la pila booleana. Dentro del cuerpo, termina el efecto de una condición en línea. |
clearbool | Lógicos | Vacía la pila booleana. Como vacía cuenta como verdadera, todos los stores que siguen vuelven a escribir. |
dupbool | Lógicos | Duplica el valor de arriba de la pila booleana. Sirve para guardar una condición y usarla de nuevo, por ejemplo para anidar condiciones en el cuerpo. |
swapbool | Lógicos | Intercambia los dos valores de arriba de la pila booleana. Permite calcular dos condiciones y elegir cuál manda en cada tramo del cuerpo. |
overbool | Lógicos | Apila una copia del segundo valor de la pila booleana: a b pasa a a b a. Con un solo valor apila verdadero. |
store | Escritura en memoria | Guarda un número en una dirección de memoria: así se dan todas las órdenes, como 20 .up store para avanzar. |
inc | Escritura en memoria | Le suma 1 a una celda de memoria: el contador más barato del ADN. |
dec | Escritura en memoria | Le resta 1 a una celda de memoria: la forma barata de llevar una cuenta regresiva. |
addstore | Escritura en memoria | Le suma un número a lo que ya hay en una celda, sin tener que leerla antes. |
substore | Escritura en memoria | Le resta un número a lo que ya hay en una celda: la celda menos el valor. |
multstore | Escritura en memoria | Multiplica lo que hay en una celda por un número y guarda el resultado ahí mismo. |
divstore | Escritura en memoria | Divide lo que hay en una celda por un número, redondeando al entero más cercano; dividir por 0 deja la celda en 0. |
ceilstore | Escritura en memoria | Le pone un techo a una celda: si lo que tiene es mayor que el número, lo baja a ese número. |
floorstore | Escritura en memoria | Le pone un piso a una celda: si lo que tiene es menor que el número, lo sube a ese número. |
rndstore | Escritura en memoria | Cambia lo que hay en una celda por un número al azar entre 0 y ese valor, con su mismo signo. |
sgnstore | Escritura en memoria | Cambia lo que hay en una celda por su signo: −1 si es negativo, 0 si es cero, 1 si es positivo. |
absstore | Escritura en memoria | Le saca el signo a lo que hay en una celda: un negativo pasa a positivo. |
sqrstore | Escritura en memoria | Cambia lo que hay en una celda por su raíz cuadrada redondeada; si no es positivo, la deja en 0. |
negstore | Escritura en memoria | Le cambia el signo a lo que hay en una celda: 20 pasa a −20 y −20 a 20. |
cond | Flujo | Abre un gen nuevo: vacía la pila booleana y empieza la zona de condiciones, que termina en start o else. |
start | Flujo | Cierra las condiciones del gen y abre su cuerpo, que corre si todas dieron verdadero; sin cond delante, corre siempre. |
else | Flujo | Abre el cuerpo alternativo de un gen, que corre cuando las condiciones del cond dieron falso. |
stop | Flujo | Cierra el gen: lo que sigue hasta el próximo marcador no se ejecuta. |
end | Flujo | Termina el ADN: lo que venga después no se ejecuta. El motor agrega uno al final si no lo ponés. |