Paso 3: Dos acciones al azar
¿Qué pasa si queremos añadir aún más complejidad al comportamiento aparentemente aleatorio de robots? Usted puede hacer tres cosas básicas. Una es añadir algo de acción del robot que no tiene nada que ver con los movimientos básicos descritos en el código original. Por ejemplo, el robot sólo sólo podría girar en un círculo a intervalos determinado estrictamente por el generador de números aleatorios con un número. O podría agregar una acción al azar independiente del que hemos añadido antes. Por ejemplo, si el robot choca contra un obstáculo a la izquierda, tal vez a veces actúa como lo haría en el código original y mover a la derecha, y tal vez otras veces podría dar vuelta totalmente alrededor y moverse en la dirección opuesta. O, por último, puede añadir una acción al azar que se entrelaza con la primera acción al azar tal como se indica en el último paso, que podría ser independiente de esa acción o siempre predecible vinculado a esa acción. Esta última posibilidad es lo que he hecho aquí.
Ahora, cuando el robot choca contra un obstáculo recto, primero determinará hacia girar su volante basado en el número aleatorio generado sea impares o incluso como explica en el último paso. Para agregar complejidad, podría programar el robot para ejecutar el motor hacia atrás durante un determinado tiempo si fue dada vuelta izquierdo, y otro particular periodo de tiempo si se convirtió derecho, convirtiendo así el robot a diferentes grados basado en la dirección de la vuelta. O, usted podría hacer lo que han hecho aquí y hacer que estas dos variables independientes entre sí. En otras palabras, se genera un número aleatorio que determinará si la rueda se gira a izquierda o derecha y se genera otro número aleatorio para determinar si el robot moverá hacia atrás a través de eso vuelta de 2,5 segundos o 5 segundos. Esto nos da 4 variaciones de cómo se comportará el robot cuando realiza después de encontrar un obstáculo recto.