DarwinBotsManual
Abrir la app EnglishEN

else

Abre el cuerpo alternativo de un gen, que corre cuando las condiciones del cond dieron falso.

Datos

Palabra
else
Familia
Flujo
Qué hace
Abre el cuerpo del «si no»: corre solo si las condiciones del gen dieron falso. Después de un start sin cond, de un stop o de otro else, no corre nunca.
Costo
Control de flujo; end no cuesta
Se ejecuta en
siempre

else es el «si no» del gen. En cond C start A else B stop, el cuerpo A corre cuando las condiciones C son verdaderas y el B cuando son falsas. Nunca corren los dos en el mismo ciclo.

' avanza mientras tenga más de 2000 de energía; si no, gira
cond
 *.nrg 2000 >
start
 20 .up store
else
 50 .aimdx store
stop

Con 2500 de energía el bot avanza con .up; con 1500 se queda quieto y gira con .aimdx. Fijate en un detalle: en el primer ciclo gira aunque tenga 2500, porque .nrg todavía vale 0 y la condición da falso. Los sentidos llegan recién desde el segundo ciclo (ver Ejecución y costos).

También vale pegado a las condiciones, sin start: cond C else B stop corre B solo cuando C es falsa, y no hay cuerpo para el caso cierto.

Un else que no tiene un cond … start (o un cond) justo antes no corre nunca: después de un start sin cond, después de un stop o después de otro else.

El else cuenta como un gen aparte en .genes y .thisgene: en cond … start … else … stop hay dos genes.