Make your own free website on Tripod.com
SANTIAGO BEDOYA
Bucles en Lingo: "repeat with" y "repeat while"
Los bucles se usan en programaciŪn para conseguir que un programa repita una serie de pasos o acciones hasta alcanzar un objetivo. Basicamente un bucle es una tarea organizada, un fragmento de cŪdigo que se encarga de gestionar una tarea repetitiva.
Cuando necesitamos por ejemplo declarar como "puppet" todos los sprites del score desde el 1 hasta el 45, un mal programador escribirĢa.
set the puppet of sprite 1 to true
set the puppet of sprite 2 to true
set the puppet of sprite 3 to true
...........
..............
Y asi hasta que se le durmieran los dedos. Para evitar esto y otras muchas cosas, debemos usar bucles.
Asi por ejemplo para el caso anterior, el problema estaria resuelto con un bucle sencillo.
repeat with x = 1 to 45
set the puppet of sprite x to true
end repeat
--------------------------------------------------------
En Lingo hay dos tipos de bucles: "repeat with" y "repeat while".
--------------------------------------------------------
El bucle "repeat while".
Este es un bucle que ejecuta su cŪdigo en funciŪn una expresiŪn de control. Esta expresiŪn puede ser cualquier variable que se pueda evaluar como verdadera (TRUE) o falsa (FALSE).
Por ejemplo:
repeat while the mouseH > 40
-- realizar algunas acciones--
end repeat -- final del bucle
repeat while not terminado
-- acciones a repetir ---
end repeat
repeat while the stillDown
-- acciones a repetir mientras el ratŪn est· pulsado ---
end repeat
Este otro bucle consigue detener la pelicula durante dos segundos.
startTimer
repeat while the timer < 5 * 60
put "Esperando..."
end repeat

Hay que tener cuidado, sin embargo, con los bucles repeat while, ya que mientras est·n funcionando, absorver·n toda la atenciŪn del programa por lo que, las pulsaciones del ratŪn y las animaciŪnes se detendr·n. Al menos solo debemos hacer funcionar estos bucles siempre y cuando sea facil "romperlos".

--------------------------------------------------------
El bucle "repeat with".
Este es un "bucle contador".
Realiza una serie de acciones hasta alcanzar un n™mero predefinido por el programador.
Por ejemplo:
repeat with x = 1 to the number of words in field "textos"
if word x of field "textos" = "lingo" then
Alert "Has escrito Lingo"
end repeat
Este bucle repite a acciŪn de b™squeda desde 1 hasta el numero de palabras que hay en el campo "textos".
Este otro bucle simplemente realiza una cuenta de 1 a 260, contando de uno e uno, y la imprime en un campo de texto.
repeat with cuenta = 1 to 260
set cuenta = cuenta + 1
put cuenta into field "msg"
end repeat
Este otro, realiza la misma cuenta de 1 a 260, pero contado de dos en dos, ya que el valor de la variable "cuenta" es aumentada en 2 en cada iteraciŪn del bucle.
repeat with cuenta = 1 to 260
set cuenta = cuenta + 2
put cuenta into field "msg"
end repeat

Es facil imaginarse cientos de utilidades para los bucles, desde una simple cuenta, hasta la programaciŪn de la trayectoria de una pelota de futbol o un proyectil en un juego. Siempre que queramos realizar acciones repetitivas en un programa debemos recurrir a los bucles, ya que estos forman parte de cualquier estructura de cŪdigo en cualquier lenguaje de programaciŪn.