DarwinBotsManual
Abrir la app EnglishEN

ADN y virus

Las sysvars para que el bot se mire el propio ADN, se borre genes y fabrique y dispare virus que inyectan un gen en otros bots.

DirecciónSysvarTipoResumen
335.mkvirusComandoCopia el gen con ese número en un virus y empieza a incubarlo; después se dispara con .vshoot.
336.dnalenInternaEl largo del ADN del bot en palabras, contando el end final; de él dependen el mantenimiento y el costo de copiarlo.
337.vtimerInternaLa cuenta regresiva del virus en incubación: 0 si no hay virus, baja de a 1 por ciclo y se detiene en 1 hasta el disparo.
338.vshootComandoDispara el virus incubado: el número es la fuerza del disparo, que define hasta dónde llega y cuánto cuesta.
339.genesInternaCuántos genes tiene el ADN del bot; cambia si muta, si se borra un gen o si un virus le inserta uno.
340.delgeneComandoBorra del propio ADN el gen con ese número; el uso clásico es un gen que se borra a sí mismo después de correr.
341.thisgeneInternaEl número del gen que se está ejecutando en este momento; cambia en cada cond, start, else o stop.

Este grupo junta dos cosas que trabajan sobre el ADN mismo, no sobre la memoria.

Mirarse el ADN. .dnalen dice cuántas palabras tiene el ADN, .genes cuántos genes, y .thisgene el número del gen que se está ejecutando. Las tres las mantiene el motor y cambian cuando el ADN cambia: por una mutación, por un virus que se metió o por un gen borrado. La numeración de los genes está en Genes: cond, start, else y stop.

Cambiarlo. .delgene borra un gen del propio ADN. El truco más conocido es un gen que se borra a sí mismo después de correr una vez, con .thisgene.

Virus. Un bot puede copiar uno de sus genes en un virus y dispararlo. El ciclo completo es:

  1. Escribís el número del gen en .mkvirus. El motor copia el gen (cobra energía por su largo) y empieza a incubarlo.
  2. .vtimer cuenta la incubación hacia atrás: dura el doble de palabras que tiene el gen. Al llegar a 1 se queda esperando.
  3. Escribís la fuerza del disparo en .vshoot. Con el virus listo, sale hacia una dirección al azar.
  4. Si toca a otro bot, el gen se inserta entre dos de sus genes, elegidos al azar, y desde el ciclo siguiente corre como uno más de los suyos.

Un gen que hace que la víctima también fabrique y dispare virus se propaga como una epidemia. La baba (.slime) frena los virus débiles, y los cadáveres no se infectan. Un bot con cloroplastos no puede fabricar virus: si lo intenta, pierde los cloroplastos. Todo el detalle está en Virus.

' Fabrica un virus con el gen 3 y lo dispara apenas está listo
cond
 *.vtimer 0 =
start
 3 .mkvirus store
stop
cond
 *.vtimer 1 =
start
 50 .vshoot store
stop
' Gen 3: lo que va a ejecutar la víctima
cond
start
 314 .aimdx store
stop