DarwinBotsManual
Abrir la app EnglishEN

rnd

Cambia el número de arriba de la pila por uno al azar entre 0 y ese número, ambos incluidos.

Datos

Palabra
rnd
Familia
Básicos
Pila entera
saca 1, pone 1
Qué hace
Saca un número n y apila uno al azar entre 0 y n, ambos incluidos. Con n negativo no es simétrico: −5 rnd da de −4 a −1.
Costo
Comando básico
Se ejecuta en
dentro de un gen: en la condición (cond) y en el cuerpo (start o else)

n rnd saca n y apila un número entero al azar entre 0 y n, los dos incluidos y todos con la misma probabilidad. 10 rnd puede dar 0, 1… o 10. Es, junto con rndstore, la fuente de azar del ADN, y la base de cualquier comportamiento que no sea del todo predecible: rumbos al azar, esperas variables, decisiones que no se repiten.

cond
start
  ' gira entre 10 a la derecha y 10 a la izquierda
  20 rnd 10 sub .aimsx store
  10 .up store
stop

Este bot avanza zigzagueando: 20 rnd da de 0 a 20 y, al restarle 10, el giro de .aimsx queda entre −10 y 10. Para elegir una dirección cualquiera, 1256 rnd .setaim store (un giro completo son 1256 unidades, ver .setaim).

Los casos raros:

Para escribir directamente un valor al azar en una celda está rndstore.