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ón | Sysvar | Tipo | Resumen |
|---|---|---|---|
| 335 | .mkvirus | Comando | Copia el gen con ese número en un virus y empieza a incubarlo; después se dispara con .vshoot. |
| 336 | .dnalen | Interna | El largo del ADN del bot en palabras, contando el end final; de él dependen el mantenimiento y el costo de copiarlo. |
| 337 | .vtimer | Interna | La 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 | .vshoot | Comando | Dispara el virus incubado: el número es la fuerza del disparo, que define hasta dónde llega y cuánto cuesta. |
| 339 | .genes | Interna | Cuántos genes tiene el ADN del bot; cambia si muta, si se borra un gen o si un virus le inserta uno. |
| 340 | .delgene | Comando | Borra 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 | .thisgene | Interna | El 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:
- Escribís el número del gen en
.mkvirus. El motor copia el gen (cobra energía por su largo) y empieza a incubarlo. .vtimercuenta la incubación hacia atrás: dura el doble de palabras que tiene el gen. Al llegar a 1 se queda esperando.- Escribís la fuerza del disparo en
.vshoot. Con el virus listo, sale hacia una dirección al azar. - 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