DarwinBotsManual
Abrir la app EnglishEN

Cuerpo, energía y estado

Las sysvars que describen al propio bot: energía, cuerpo, masa, edad, reloj, muertes y desechos, más las órdenes para pasar energía al cuerpo y al revés.

DirecciónSysvarTipoResumen
9.robageSentidoLa edad del bot en ciclos: 0 en su primer ciclo de vida, sube de a 1 y se detiene en 32000.
10.massSentidoLa masa del bot: sale del cuerpo, del caparazón y sobre todo de los cloroplastos, y decide cuánto lo mueve cada empujón.
12.timerEntrada y salidaUn reloj que suma 1 por ciclo, que podés escribir y que el hijo hereda del padre: sirve para sincronizar a un linaje.
220.killsSentidoCuántos bots mató este bot, con disparos o por un lazo; el motor la actualiza solo cuando mata.
310.nrgSentidoLa energía del bot, entre 0 y 32000: lo que gasta en cada acción y lo que lo mantiene vivo.
311.bodySentidoEl cuerpo del bot, entre 0 y 32000: reserva que vale 10 de energía por punto y que define su tamaño y su peso.
312.fdbodyComandoConvierte cuerpo en energía: hasta 100 de energía por ciclo, a 10 de energía por punto de cuerpo.
313.strbodyComandoGuarda energía como cuerpo: hasta 100 de energía por ciclo, que se convierten en 10 de cuerpo.
314.setboyComandoSube o baja la flotabilidad del bot, que en el modo estanque con gravedad decide a qué altura se queda.
315.rdboySentidoLa flotabilidad del bot, de 0 a 32000, tal como quedó la última vez que la cambió con .setboy.
828.wasteSentidoLos desechos que acumuló el bot: en exceso le escriben números al azar en la memoria; se tiran con un disparo -4.
829.pwasteSentidoLos desechos permanentes: un resto que queda cada vez que el bot tira desechos y que ya no se puede eliminar.

Este grupo es el tablero del bot: lo que el motor le cuenta sobre sí mismo al final de cada ciclo, y un par de órdenes para administrar sus reservas. Lo más leído de todo DarwinBots está acá: casi cualquier bot tiene alguna condición sobre .nrg o .body.

Un bot guarda su riqueza en dos monedas. La energía (.nrg) es la que se gasta: cada instrucción, cada movimiento, cada disparo la consume, y si se acaba el bot muere. El cuerpo (.body) es una reserva más lenta que además lo hace más grande y más pesado (.mass). Entre las dos hay un tipo de cambio fijo de 10 a 1: .strbody guarda 100 de energía como 10 de cuerpo, y .fdbody hace el camino inverso. Con eso se arma una alcancía, como en este bot:

' Mantiene la energía entre 2000 y 5000 usando el cuerpo de reserva
cond
 *.nrg 5000 >
start
 100 .strbody store
stop
cond
 *.nrg 2000 <
 *.body 100 >
start
 100 .fdbody store
stop

El resto del grupo son relojes y contadores: .robage (la edad, que arranca en 0), .timer (un reloj que se hereda de padre a hijo y que podés escribir) y .kills (a cuántos mataste). .waste y .pwaste miden los desechos, que en exceso le corrompen la memoria al bot. .setboy y .rdboy manejan la flotabilidad en el modo estanque.

Los sentidos de este grupo llegan con un ciclo de atraso, y un bot recién cargado los lee en 0 en su primer ciclo (salvo .timer, que arranca al azar): *.nrg 500 < es verdadero ahí aunque tenga energía de sobra. Cómo se cobra y se gana la energía está en Energía, cuerpo y desechos; los cambios de un ciclo al otro, en Ganancias y pérdidas.