-
- 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.