TEMA 10. PROGRAMACIÓN (II)
1. El lenguaje de programación ScratchJr (II)
1.1 Bucles infinitos
Es un segundo tipo de bucle en el bloque “Repetir indefinidamente”, de la categoría de finalización, también llamado bucle infinito. Su efecto es que los bloques del guión donde se encuentra (salvo bloque el inicial) se ejecutan secuencialmente una y otra vez, indefinidamente.
un proyecto que incluya el bloque “Repetir indefinidamente” nunca termina su ejecución. Sin embargo, en la práctica el programador puede parar su ejecución para no perder el control del entorno de programación. Al iniciar la ejecución de un proyecto, el icono de bandera verde cambia a un hexágono rojo. Si lo pulsamos, la ejecución del proyecto termina, volviendo a aparecer la bandera verde.
1.2 Forma de los bloques
Se pueden usar de diferentes formas:
- Bloques disparadores. Tienen color amarillo. Siempre se colocan al comienzo de un guión, salvo el bloque “Enviar mensaje”, que puede se trata igual que las categorías siguientes.
- Bloques de movimiento, apariencia, sonido y control. Permiten el ensamblaje de otros bloques por su izquierda y por su derecha. La única observación es que el bloque “Repetir” también puede ensamblar una secuencia de bloques en su interior. Por otro lado, los bloques disparadores sólo pueden colocarse al inicio de un guión.
- Bloques de finalización. Son de color rojo. Siempre se colocan al final de un guión.
- Al presionar bandera verde: comienza el guion cuando se pulsa la bandera verde
- Comenzar al tocar: comienza el guion cuando el personaje es tocado por otro personaje
- Enviar mensaje: envía un mensaje del color seleccionado
- Comenzar al pulsar: comienza el guion cuando se pulsa el personaje
- Comenzar con mensaje: comienza el guion cuando se envíe un mensaje del color seleccionado
- Si un mensaje es recibido por algún guión, el guión que lo envió se queda temporalmente en pausa hasta que el guión receptor termina su ejecución completamente. En ese momento, se reanuda la ejecución del guión emisor, por el siguiente bloque al de envío de mensaje. Esto implica:
- Si el guión receptor no termina su ejecución, el guión se queda indefinidamente en pausa. Esto sucede si el guión receptor termina con un bloque “Repetir indefinidamente”.
- Un mensaje puede ser recibido por varios guiones (y por tanto por varios personajes). En este caso, el guión emisor se queda en pausa hasta que hayan terminado todos los guiones activados por el mensaje.
- Si un mensaje no es recibido por ningún guión, el guión que lo envió no se pausa, continuando su ejecución por el siguiente bloque.
- Finalizar: indica el final del guion
- Ir a la página: salta a la página seleccionada del proyecto
- Repetir indefinidamente: ejecuta este guion continuamente
- Esperar: para el guion durante cierto tiempo
- Fijar velocidad: cambia la velocidad a la que ciertas instrucciones se ejecutan.
- Parar: para todos los guiones del personaje
- Repetir: repite cierto número de veces las instrucciones que están dentro del bloque
- Secuencia de bloques o guión. Los bloques de un guión se ejecutan de forma secuencial e indivisible (es decir, uno tras otro) desde el primero hasta el último.
- Bloque de control “Repetir”. Los bloques contenidos dentro de este bloque se ejecutan de forma secuencial e indivisible tantas veces como indique el número del bucle.
- Bloque de control “Fijar velocidad”. Su ejecución puede provocar que algunos bloques del guión donde se encuentra se ejecuten más o menos rápidamente.
- Bloque de control “Esperar”. Provoca que la ejecución del guión donde se encuentra se pare durante un cierto tiempo.
- Bloque de finalización “Repetir indefinidamente”. Los bloques del guión se repiten sin fin. Solamente se para la ejecución del guión si hay un cambio de página, si le afecta un bloque “Parar” o si el usuario presiona el botón “Parar”.
- Varios guiones. Cada personaje de la página activa tiene su propio guión. Además, un personaje puede tener varios guiones. Todos estos guiones se ejecutan en paralelo:
- Los bloques de cada guión se ejecutan en secuencia e indivisiblemente.
- El ordenador sólo puede ejecutar una instrucción cada vez. Por tanto, al ejecutar varios guiones, va seleccionando en cada momento un bloque de alguno de los guiones. El resultado es que la ejecución paralela de varios guiones resulta en una ejecución entremezclada de sus bloques.
- Bloque de finalización “Finalizar” o simplemente que se ejecute el último bloque de un guión. Termina la ejecución de este guión.
- Bloque de control “Parar”. Termina la ejecución de todos los guiones del personaje, salvo el guión donde se encuentra el bloque “Parar”.
- Bloque de finalización “Ir a la página”. Este bloque tiene un gran impacto sobre la ejecución del proyecto. Se para la ejecución de los guiones de todos los personajes de la página actual, se cambian el fondo y los personajes por los de la nueva página, y se inicia la ejecución de los guiones de estos personajes que comienzan con el bloque disparador “Al presionar bandera verde”.
- Bloques disparadores “Enviar mensaje” y “Comenzar con mensaje”. El primero de estos bloques produce el envío de un mensaje del color correspondiente. Se comprueba si algún guión de la página actual tiene un bloque “Comenzar con mensaje” de dicho color. En ese caso, se inician todos los guiones que tengan dicho bloque disparador, quedando parado el guión que envió el mensaje, hasta que terminen su ejecución todos los guiones receptores del mensaje.
- Bloques disparadores “Comenzar al tocar” y “Comenzar al pulsar”. Si se comprueba que un personaje es tocado por el usuario o por otro personaje y tiene algún guión disparador con uno de estos bloques, se inicia su ejecución.
- Estado de cada personaje. El estado de cada personaje viene dado por varias características: posición en los ejes X e Y, su orientación, su tamaño, si es visible y si está diciendo algo.
- Estado de cada guión activo. Los bloques de cada guión se ejecutan de forma secuencial e indivisible, por lo que en cada momento hay un bloque activo. En el caso de bucles “Repetir”, debe saberse qué iteración está realizando en cada momento. En el caso del bloque “Esperar” debemos saber cuánto tiempo lleva parada la ejecución del guión
- La página activa se resalta mediante un marco naranja
- El bloque activo en cada guión se resalta con un cambio de color. Desafortunadamente, no se muestra el número de iteraciones realizadas de los bloques “Repetir”.
- Puede conocerse la posición exacta de un personaje activando el icono “Cuadrícula”
Comments
Post a Comment