Bucles
Un bucle es la repetición de una o varias instrucciones un número determinado de veces, y su estructura es REPITE n [instrucción]. Por ejemplo, para dibujar un cuadrado, podemos escribir la siguiente primitiva:
REPITE 4 [AV 50 GD 90]
Entre los corchetes se puede escribir todas las primitivas que deseemos, una detrás de otra como en el ejemplo anterior o una debajo de otra para tener una visión más clara de cada orden. A continuación, vamos a controlar el funcionamiento del semáforo que creamos anteriormente. El objetivo es que se encienda el verde, que parpadee después el amarillo y, por último, que se ilumine el rojo. Luego haremos que este ciclo se repita indefinidamente.. Empezaremos creando un procedimiento que llamaremos PAR (PARPADEO), que encienda la luz amarilla tres veces de forma intermitente:
PARA PAR
SL AV 60
REPITE 3 [
POCCR [255 255 0]
RELLENA ; pinta el círculo de amarillo
ESPERA 60 ; espera 1 s
POCCR [10 10 10]
RELLENA ; pinta el círculo de gris
ESPERA 60 ; espera 1 S
]
RE 60 BL ; deja el cursor en la posición inicial
FIN
Observa los siguientes puntos:
En los programas puedes añadir comentarios, sin más que poner delante un punto y coma, para facilitar su comprensión.
Las órdenes que se repetirán están entre un corchete de inicio: [ y otro de final: ]
Aparece la primitiva ESPERA, seguida de un número, que expresa el tiempo que el programa estará detenido; este tiempo se cuenta como si cada segundo estuviera dividido en 60 unidades menores.
Seguimos cumpliendo la norma básica de que después de realizar cualquier acción, un robot debe quedarse en la misma posición y orientación en la que empezó la acción.
El programa completo de control del semáforo es el siguiente:
PARA CONTROL
REPITE SIEMPRE [
POCCR [0 255 0] ; selecciona el color verde
RELLENA ; enciende el verde
ESPERA 180 ; espera 3 s
POCCR [10 10 10] ; selecciona el color gris
RELLENA ; apaga verde
PAR ; ejecuta el bucle parpadeo
SL AV 120 ; coloca la tortuga en el círculo del rojo
POCCR [255 0 0] ; selecciona el color rojo
RELLENA ; enciende el rojo
ESPERA 300 ; espera 5 s
POCCR [10 10 10] ; selecciona el color gris
RELLENA ; apaga rojo
RE 120 ; coloca la tortuga en la posición inicial, el círculo del verde
]
FIN
La instrucción REPITE SIEMPRE [instrucciones] forma lo que se denomina un bucle infinito, mediante el cual las instrucciones se ejecutan continuamente, hasta que pulsemos el botón ALTO. También debes notar que para rellenar cada uno de los círculos, se desplaza la tortuga hasta su centro.