DarwinBotsManual
Abrir la app EnglishEN

Un vegetal

Paso a paso, un vegetal que fabrica sus cloroplastos, vive del sol y llena el campo de hijos: por qué girar al partirse, qué pasa de noche y cómo lo repuebla el mundo.

En Un bot que se mueve armaste un bot que se mueve y en Un bot que busca comida, uno que le busca la comida a los demás. Este tutorial juega para el otro equipo: un vegetal que no le corre a nadie. Toda su energía le llega del sol, y con ella llena el campo de copias de sí mismo. Como siempre, cada paso le agrega un gen al ADN y te cuenta qué deberías ver.

Qué tiene un vegetal

Un vegetal es un bot de una especie que marcaste como tal: la casilla Es vegetal (hace fotosíntesis) al editar la especie en Experimentar, o Vegetal (hace fotosíntesis) al sembrar desde Observar.

Con esa marca, el mundo lo trata distinto:

Fotosintetizar, en cambio, no es exclusivo de los vegetales: cualquier bot con cloroplastos lo hace. Cómo funciona la fotosíntesis, cuándo hay sol y cuánto rinde está en Cloroplastos y vegetales; acá lo usamos.

Paso 1: fabricar cloroplastos

En la app, un vegetal recién sembrado ya trae sus 16000 y crece sin escribir una sola línea. Pero los cloroplastos se pierden solos, se reparten con cada hijo y cada uno pesa, así que las algas serias del Bestiario los fabrican por su cuenta. Hagamos lo mismo:

' Fabrica cloroplastos mientras falte luz libre
cond
 *.chlr *.light <
start
 160 .mkchlr store
stop

.chlr dice cuántos tiene y .light, cuánta luz libre queda en el campo: cuando los bots abundan, cada uno tapa su pedazo y la luz baja. Mientras falte, el gen compra 160 por ciclo con .mkchlr; cuando la luz alcanza, se apaga solo. Sacárselos con .rmchlr es gratis, pero no devuelve nada.

Comprar cuesta Cloroplasto nuevo por cloroplasto. Con los costos apagados no se nota; con el precio de la liga F1 (0,2), un alga que arrancó con 3000 terminó su fábrica con unos 6140 de energía menos que una gemela con costos en 0: justo lo que le costaron los cloroplastos. Y como una compra se cancela entera si dejaría al bot con menos de 100 de energía, una alga que arranca pobre no puede darse el lujo: en la prueba, una que nació con 500 se pasó los primeros 200 ciclos pegada al piso de 100, comprando de a poco lo que el sol le pagaba.

Qué deberías ver: en el inspector, .chlr sube de a 160 por ciclo hasta que alcanza la luz libre, y ahí se frena. Después de cada parto vuelve a arrancar: el hijo se lleva la mitad.

Paso 2: vivir del sol

Con cloroplastos y de día, el bot cobra en cada ciclo, en la fase del sol, la última del ciclo (ver El ciclo y el orden de las acciones). El reparto lo fija Fotosíntesis: fracción al cuerpo: con 0,75, el valor de la app, un cuarto de la ganancia va a .nrg y tres cuartos a .body, a 10 por 1.

Con la energía solar en 100, un alga sola pasa de 3000 a unos 4660 de energía en los primeros 100 ciclos, y con la fábrica completa gana unos 225 por ciclo entre energía y cuerpo. Tarde o temprano llega al tope de 32000 (Energía, cuerpo y desechos): en la prueba lo tocó antes del ciclo 650, y de ahí en más el sol siguió brillando para nada. Energía acumulada que no se usa es energía tirada; para que sirva, hay que tener hijos.

Con la energía solar de la app (10, Energía solar por ciclo), todo rinde un décimo: los números con ese valor están en la tabla de Cloroplastos y vegetales.

Paso 3: tener hijos

Cuando sobra energía, partirse. Segundo gen:

' Con energia de sobra, se parte
cond
 *.nrg 6000 >
start
 50 .repro store
stop

.repro pide un hijo que se lleva el 50 % de la energía, del cuerpo, de los cloroplastos y de los desechos (Reproducción). El número es el porcentaje, módulo 100, y la orden queda escrita hasta que el parto sale bien. El hijo nace delante del padre, mirándolo, en la fase de nacimientos y muertes del mismo ciclo (Reproducción).

Y acá aparece el problema del bot quieto: un solo parto. El hijo nace donde apunta el padre y ahí se queda; el próximo quiere nacer en ese mismo lugar, que ya está ocupado, y el parto falla. En la prueba, padre e hijo quedaron trabados cara a cara, la orden siguió escrita reintentando ciclo tras ciclo, y a los 500 ciclos seguían siendo dos, llenos de energía sin poder partirse.

La solución es girar entre parto y parto, como hace Alga minimalis del Bestiario:

' Con energia de sobra, se parte y gira para el proximo
cond
 *.nrg 6000 >
start
 50 .repro store
 15 .aimdx store
stop

Al girar con .aimdx, el punto del próximo parto apunta a otro lado. Con ese giro solo, la población pasó de 1 a 2, 4, 8 y 12 bots en 500 ciclos.

El bot completo

' Un vegetal: fabrica cloroplastos, crece y se multiplica

' Fabrica cloroplastos mientras falte luz libre
cond
 *.chlr *.light <
start
 160 .mkchlr store
stop

' Con energia de sobra, se parte y gira para el proximo parto
cond
 *.nrg 6000 >
start
 50 .repro store
 15 .aimdx store
stop

En una corrida larga llenó el campo: 1 → 4 → 12 → 16 → 21 → 23 bots en 1500 ciclos, y ahí se frenó solo. No fue mala suerte: con el campo lleno, cada bot tapa la luz de los demás (Cloroplastos y vegetales), la luz libre bajó a menos de la mitad y la ganancia ya no alcanza para más partos. Si además los cloroplastos de todo el campo pasan del 90 % del tope, solo uno de cada once partos sigue adelante (Tope de vegetales y Cloroplastos y vegetales).

Siembra unas quince copias marcadas como vegetal en la app y mirá el campo llenarse de hexágonos.

De noche

Por defecto siempre es de día. En Experimentar, el control Día y noche hace que el sol se ponga: cada tramo dura ese valor más 1 ciclos, y solo el primer día dura uno menos (con 3: tres de día, cuatro de noche, cuatro de día…).

De noche no hay fotosíntesis: en la prueba, la energía y el cuerpo quedaron clavados ciclo tras ciclo mientras .daytime estuvo en 0. El gen de compras no se entera —.light no se recalcula de noche— y el bot sigue comprando en la oscuridad: gratis con los costos apagados, energía tirada con costos reales. Chloroplastus, del Bestiario, compra de día y se deshace de a 1 de noche (Cloroplastos y vegetales).

El escenario Día y noche de la app trae 20 Alga minimalis y 5 Animal Minimalis con días y noches de 1000 ciclos: mirá oscilar a la población cada vez que el sol se pone (Escenarios).

La repoblación

El mundo no deja que los vegetales desaparezcan: si los cloroplastos de todo el campo bajan de Repoblar por debajo de (cloroplastos), cada Ciclos entre repoblaciones ciclos siembra Vegetales por repoblación vegetales nuevos. Ojo con la unidad: el umbral cuenta cloroplastos, en unidades de 16000, no bots.

En la prueba, un vegetal solo con el umbral en 3 recibió 10 desconocidos en el ciclo 10 y otros 10 en el 20. Cada uno nace con 1000 de cuerpo, la energía inicial de su especie y los cloroplastos de Cloroplastos iniciales, en un lugar al azar. ¿De qué especie? De una vegetal que siga viva: si la tuya es la única, el mundo te siembra clones tuyos a vos (Cloroplastos y vegetales).

Contra las algas del Bestiario

Nuestro bot es prácticamente el Alga minimalis 3.0 del Bestiario, que le agrega un gen de baba:

' El gen de baba del Alga minimalis 3.0
cond
start
 *.nrg 500 div .mkslime store
stop

Cada ciclo pide tanta baba como su energía dividida 500 — calculada con div y escrita en .mkslime, que rinde diez de baba por cada punto de energía. La baba frena disparos y mordidas (Defensas). Corriendo al alga real marcada como vegetal, en 300 ciclos pasó de 1 a 4 bots con unos 22000 cloroplastos cada uno y una capa de entre 280 y 460 de baba: la misma vida que la nuestra, con coraza.

El Alga Substantis, en cambio, se toma el calendario en serio: de día guarda energía en el cuerpo con .strbody y da vueltas; de noche saca del cuerpo con .fdbody y pare muchos hijos chicos, para que alguno llegue a la mañana.

Qué probar después