Scratch, programación al alcance de todos (parte 3)Sergio Sancho Azcoitia 11 marzo, 2020 En los dos anteriores posts de esta serie te contamos qué es Scratch y cómo está organizada su estructura. En esta ocasión te vamos a enseñar cómo utilizarlo para crear un juego educativo de preguntas y respuestas enfocado al ámbito de la ciberseguridad. ¡Vamos a ello! Creando juegos didácticos con scratch Lo primero de todo será crear un proyecto. Para ello sólo tendrás que acceder a tu cuenta de Scratch (si no dispones de una, deberás crearla antes) y entrar en el apartado “mis cosas” (en el menú superior derecho). Desde esta pantalla pulsaremos en “Nuevo proyecto” para que se abra el editor. Para este juego tendremos que crear distintos programas: por un lado, irá el juego; y por otro, una cuenta atrás para añadir un poco de presión a los jugadores. Al igual que haríamos en cualquier otro entorno de programación, lo primero que haremos será definir nuestras variables. En este caso utilizaremos 3 (puntuación, respuesta del usuario y tiempo), y para crearlas sólo tendremos que acceder al apartado variables y pulsar en “Crear una variable”. Para terminar, marcaremos aquellas que se muestren por pantalla durante el juego, en este caso serían puntuación y tiempo. Figura 1: Crear variables en Scratch A continuación, nos iremos al apartado “Fondos” de nuestro editor y crearemos un fondo para nuestro juego (podemos seleccionar una de las imágenes de Scratch o cargar una que tengamos en nuestro ordenador). Hecho ésto, el siguiente paso es utilizar un bloque de eventos para que inicie el juego. Después asignaremos a la variable “puntuación” el valor 0. Más tarde utilizaremos bloques de apariencia para cargar el fondo creado anteriormente y explicar las reglas del juego con otros bloques de apariencia. Figura 2: Bloque de inicio del juego Cómo elaborar preguntas Ahora que ya tenemos el comienzo del juego, el siguiente paso es crear las preguntas. Para ello utilizaremos listas y bucles. Lo primero será elaborar una pregunta y pensar en 4 posibles respuestas (habiendo sólo 1 correcta). Para poder mostrar las respuestas por pantalla utilizaremos las listas y algunos de los comandos diseñados para ellas que podemos encontrar en el apartado de variables (mostrar/ocultar lista). Para realizar la pregunta utilizaremos un bloque del apartado sensores y para almacenar la respuesta del usuario utilizaremos otro bloque similar al utilizado para asignar el valor inicial de la puntuación. Por ultimo teniendo en mente la respuesta correcta crearemos el bucle que informara al jugador de si ha acertado o fallado sumándole un punto por cada acierto que tenga, para ello utilizaremos bloques del apartado operadores. Figura 3: Ejemplo de pregunta Para que sea más sencillo construir el código final y que éste no sea muy largo, podemos utilizar la función de crear bloques, como se ve en la imagen anterior. Una vez que hayamos creado todas nuestras preguntas sólo tendremos que llamar a los bloques en el orden que queramos para que, al contestar una pregunta, salte automáticamente a la siguiente. Para terminar… Ahora que tenemos nuestras preguntas listas sólo nos queda finalizar el juego. Para ello hemos decidido crear un bloque de finalización que muestra la puntuación obtenida y que, en caso de haber acertado más de la mitad de las preguntas, te felicita. Al igual que con las preguntas, podemos crear una función utilizando el apartado «Mis Bloques» y nombrarla, al fin y al cabo siempre es más cómodo trabajar con pequeños fragmentos de código. Figura 4: Marcador de puntuación Por último, y para añadirle un poco más de emoción al juego, crearemos una cuenta atrás para que el tiempo para responder cada pregunta sea de 15 segundos aproximadamente. La cuenta atrás comenzará al mismo tiempo que aparezca la primera pregunta por pantalla; para ello tendremos que calcular el tiempo que tarda el comienzo del juego y utilizar el bloque “esperar (x) segundos”. Figura 5: Código para la cuenta atrás Para elaborar nuestro temporizador hemos asignado a la variable tiempo el número desde el que queremos que comience la cuenta atrás. Después hemos utilizado un bucle para que el marcador de tiempo baje 1 punto cada segundo hasta alcanzar el valor 0. Cuando se acabe el tiempo avisaremos a los jugadores con un mensaje y les diremos cuál ha sido la puntuación obtenida. Al igual que con el temporizador, deberemos añadir un script de finalización para el juego. Ahora que ya tenemos todas las partes del juego por separado, sólo queda juntarlas. Para ello usaremos nuestros bloques creados exceptuando los correspondientes a la cuenta atrás, ya que funcionan de forma independiente y simultánea al programa principal. Si todavía no lo has hecho, lee aquí los anteriores posts de esta serie sobre Scratch: Scratch, programación al alcance de todos (parte 1) Scratch, programación al alcance de todos (parte 2) Cómo encontramos cinco vulnerabilidades en los Router D-Link 859Exprimiendo interfaces APIs para cazar amenazas
Telefónica Tech Boletín semanal de Ciberseguridad, 27 de mayo – 2 de junio Descubierta puerta trasera en cientos de placas base Gigabyte Investigadores de ciberseguridad de Eclypsium descubrieron una puerta trasera secreta en el firmware de cientos de modelos de placas base Gigabyte,...
Nacho Palou Cómo el lenguaje pone en riesgo la Ciberseguridad de las empresas La Ciberseguridad es un asunto fundamental para las empresas y organizaciones, de cualquier tamaño y sector. Los ciberataques pueden tener consecuencias graves o muy graves —incluso fatales— para los...
Carlos Rebato Criptografía, una herramienta para proteger los datos compartidos en la red Actualmente, la Ciberseguridad representa un aspecto primordial en las empresas. No obstante, cada día surgen nuevos modos de atentar contra ella. Muchos se han preguntado: ¿de qué manera las...
Roberto García Esteban ChatGPT y Cloud Computing: un matrimonio bien avenido ChatGPT (quizá no sepas que son las siglas de Chat Generative Pre-Trained Transformer) está en boca de todos por su impresionante habilidad para generar textos que parecen escritos por...
David Prieto Marqués La importancia del control de acceso: ¿está tu empresa protegida? Por David Prieto y Rodrigo Rojas En un mundo cada vez más digitalizado y complejo, la seguridad de la información es fundamental para las empresas. A medida que las empresas...
Telefónica Tech Boletín semanal de Ciberseguridad, 22 – 26 de mayo GitLab parchea una vulnerabilidad crítica GitLab ha abordado una vulnerabilidad crítica que afecta a GitLab Community Edition (CE) y Enterprise Edition (EE) en la versión 16.0.0. En concreto, dicho fallo...