DarwinBotsManual
Abrir la app EnglishEN

Reproducción

Cómo tiene hijos un bot, solo o con pareja: qué se lleva el hijo, dónde nace, qué hereda, cómo se mezcla el ADN en la sexual y por qué un parto puede fallar.

Un bot no fabrica hijos de la nada: se parte. Escribe un porcentaje y, si puede, al final del ciclo aparece a su lado un bot nuevo que se lleva ese porcentaje de lo que tenía. El hijo es una copia de su ADN (con alguna mutación, si están encendidas) o, en la reproducción sexual, una mezcla con el ADN de otro bot.

Esta página cuenta el mecanismo entero. Las fichas de cada orden están en Reproducción.

Las tres órdenes

OrdenQué pide
.reproUn hijo asexual: una copia del propio ADN.
.mreproLo mismo, pero el hijo nace con muchas más probabilidades de mutar (Mutaciones).
.sexreproUn hijo sexual. Solo funciona si el bot fue fecundado por el esperma de otro.

En las tres, el número es el porcentaje que se lleva el hijo, y vale lo mismo:

Si un bot tiene escritas .repro y .mrepro a la vez, una moneda decide cuál de los dos porcentajes se usa. Si está fecundado y tiene .sexrepro escrita, ese ciclo intenta solo la sexual y la asexual espera, aunque la sexual termine fallando.

Cómo se reparten las cosas

Este bot se divide una sola vez, a los tres ciclos de vida:

' Se divide una sola vez, al tercer ciclo de vida
cond
 *.robage 3 =
start
 50 .repro store
stop

Con 3000 de energía y 1000 de cuerpo, al terminar el ciclo hay dos bots:

AntesPadre despuésHijo
Energía (.nrg)30001498,51498,5
Cuerpo (.body)1000500500

Lo que pasa, cosa por cosa:

El parto no cuenta como una pérdida brusca de energía: un bot grande que se parte en dos no muere de shock (ver Energía, cuerpo y desechos).

Dónde nace

El hijo aparece delante del padre, en la dirección a la que apunta (.aim), a la distancia justa para que los dos se toquen: la suma de los radios que van a tener después de partirse. Nace mirando hacia el padre, es decir, con el rumbo opuesto, y con la misma velocidad que él.

              rumbo del padre ──►
     ( padre )( hijo )
                  ◄── rumbo del hijo

En la prueba de arriba el padre apuntaba a 160 y el hijo apareció a 175 unidades en esa dirección, apuntando a 788 (160 + 628, media vuelta).

Por eso, para un bot que se reproduce mucho, conviene girar entre parto y parto: si siempre apunta al mismo lado, el próximo hijo quiere nacer donde está el anterior.

El lazo de nacimiento

Padre e hijo nacen unidos por un lazo (Lazos y multicelulares). Es un lazo elástico que los mantiene juntos y que se corta solo a los 100 ciclos; los dos lo ven en .numties. Lo crea el padre con un número de puerto que no se puede usar, así que solo el hijo lo maneja: puede cortarlo antes con .deltie, escribirle al padre en la memoria o pasarle y sacarle energía por él. El padre, en cambio, solo lo siente (ver Lazos y multicelulares). Como nunca se endurece, no los vuelve un organismo multicelular.

Además es el canal de la memoria genética diferida (abajo): si se corta, o si el hijo lo reemplaza atándose al padre con .tie, deja de recibirla.

Qué hereda el hijo

HeredaNo hereda
El ADN, con las mutaciones de nacimiento si las hayLa memoria: la tiene toda en 0
El nombre de la especie y el colorLos lazos (salvo el de nacimiento)
Su tabla de tasas de mutaciónLa edad: nace con 0
El .timer, que sigue contandoCaparazón, baba, veneno y toxina
Las celdas 971–975 y, de a una, las 976–990

El hijo es de la generación siguiente a la del padre, y el motor anota quién es su padre para el árbol del linaje (Especies y linaje).

La memoria genética funciona así:

Los detalles y un ejemplo que cuenta generaciones están en Memoria libre y epigenética.

Recordá además que el hijo nace cuando el ADN de ese ciclo ya corrió: piensa por primera vez en el ciclo siguiente, con .robage en 0 (ver El ciclo y el orden de las acciones).

Cuándo falla

Un parto pedido no sale si:

SituaciónQué pasa
El bot tiene menos de 5 de cuerpoNo hay hijo.
La energía está en 0 o menosNo hay hijo.
El porcentaje, tomado módulo 100, da 0No hay hijo (100, 200…).
El lugar donde nacería el hijo está ocupadoOtro bot muy cerca de ese punto, una forma entre el padre y ese punto, o ese punto fuera del campo cuando los bordes no se conectan.
La simulación prohíbe la reproducción asexualCon Sin reproducción asexual (no repobladores), los bots que no son vegetales no pueden usar .repro ni .mrepro. La sexual sigue permitida.
Es un vegetal y ya hay muchosSi los cloroplastos de todo el mundo superan el Tope de vegetales, ningún vegetal se reproduce. Por encima del 90 % de ese tope, solo uno de cada once intentos pasa.

En todos estos casos la orden sigue escrita y se reintenta en el ciclo siguiente. El caso más común es el lugar ocupado: un hijo que quiere reproducirse apenas nace, todavía pegado al padre, o un bot rodeado de su propia cría. Un bot que pide hijos y no los tiene suele estar mirando a una pared o a un hermano.

La reproducción sexual

Hay dos papeles, y cualquier bot puede hacer los dos:

  1. El que aporta el esperma dispara con -8 .shoot store (ver .shoot y Disparos). El disparo lleva una copia de su ADN. No tiene hijos ni gasta nada más que el disparo.
  2. El que lo recibe queda fecundado durante unos diez ciclos. Lo ve en .fertilized, que cuenta hacia abajo de 9 a 0. Si en ese plazo tiene .sexrepro escrita, tiene un hijo.

Todo lo pone la madre, el bot que escribe .sexrepro: energía, cuerpo, cloroplastos, el lugar donde nace el hijo, el lazo de nacimiento, la memoria genética y el reloj. El reparto, las reglas de dónde nace y las razones para fallar son las mismas de la asexual. El linaje registra solo a la madre.

Cada esperma sirve para un solo hijo: después del parto la fecundación se termina. Si llega otro esperma mientras la madre está fecundada, reemplaza al anterior y la cuenta vuelve a empezar.

Animal_Minimalis_Sex, de Botsareus, es el ejemplo clásico del Bestiario: cuando junta más de 20000 de energía busca a uno de su especie (compara .refeye con .myeye), le dispara esperma y deja escrito 10 .sexrepro store, que espera hasta que a él también lo fecunden.

Cómo se arma el ADN del hijo

El motor pone los dos ADN uno al lado del otro y busca los tramos en común: secuencias de instrucciones iguales en los dos, en el mismo orden. Lo que queda entre esos tramos son las diferencias. Después arma el hijo recorriéndolos en orden:

  madre:    [ común A ] x x x [ común B ] z z [ común C ]
  esperma:  [ común A ] y y   [ común B ]     [ común C ]
                         │                 │
                    moneda: x o y     moneda: z o nada
  hijo:     [ común A ] y y   [ común B ] z z [ común C ]

Dos consecuencias:

Sobre esa mezcla se aplican después las mutaciones de nacimiento, como en la asexual.

Parientes, no extraños

La comparación de arriba también mide qué tan distintos son los dos ADN: la distancia genética es la proporción de instrucciones que no quedaron en ningún tramo común. Si pasa del 60 %, no hay hijo:

Lo probamos con dos bots muy distintos. El macho busca y dispara:

' Gira hasta ver a alguien y le dispara esperma
cond
 *.eye5 0 =
start
 25 .aimdx store
stop
cond
 *.eye5 0 >
start
 -8 .shoot store
stop

La madre se queda quieta y, si la fecundan, pide un hijo. Lleva además un gen de relleno que nunca corre y que la hace muy distinta del macho:

' Quieta; si la fecundan, tiene un hijo
cond
 *.fertilized 0 >
start
 50 .sexrepro store
stop
cond
 *.nrg 30000 >
start
 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
 41 42 43 44 45 46 47 48 49 50
stop

El esperma le llega, .fertilized marca 9 y después 8, y ahí se congela: no hay hijo. Trece ciclos más tarde le llega otro esperma, que tampoco sirve. En cambio, el bot de ejemplo de .sexrepro, que tiene los dos genes del macho más el suyo, tiene hijos con ese mismo macho en tres de cada cuatro pruebas.

Si .fertilized se congela, el esperma fue rechazado. Si en cambio sigue bajando hasta 0 sin que nazca nadie, el problema es otro, casi siempre el lugar: una madre que se queda mirando al macho tiene el sitio del hijo ocupado por él.

Por eso los bots sexuales se buscan entre los de su especie: el esperma de un pariente casi siempre pasa la prueba, el de un extraño casi nunca.

Resumen

PreguntaRespuesta
¿Cuánto se lleva el hijo?El porcentaje pedido, módulo 100, de energía (menos una milésima), cuerpo, cloroplastos y desechos.
¿Qué paga el padre?Una milésima extra de energía y la copia del ADN (Copia del ADN).
¿Dónde nace?Delante del padre, tocándolo, mirando hacia él.
¿Cuánto duran juntos?El lazo de nacimiento se corta solo a los 100 ciclos.
¿Qué memoria hereda?.timer, 971–975 al nacer y 976–990 de a una.
¿Y si falla?La orden queda escrita y se reintenta cada ciclo.
¿Quién pone los recursos en la sexual?La madre. El macho solo dispara.
¿Cuándo se rechaza el esperma?Si más del 60 % de los dos ADN no coincide.