🏫 1.º ESO · Tecnología y Digitalización

Misión: Despertar la Primavera 🌸

Hoy programamos con Hopscotch. Tres niveles de dificultad, una hora de código y un proyecto que podrás enseñar con orgullo.

⏱️ 55 minutos 📱 iPad 🌱 Hopscotch 👥 Individual 🎯 Bucles · Variables · Eventos
Progreso
0%
📚

¿Qué vamos a aprender hoy?

Repasamos los bloques clave de Hopscotch antes de lanzarnos a programar. Léelo con calma: ¡es tu mapa!

🎯

Eventos (When)

El disparador de toda acción. Define cuándo ocurre algo: al tocar, al chocar, al agitar el iPad...

🔄

Bucle (Repeat Forever)

Ejecuta un bloque de acciones sin parar. Imprescindible para movimiento continuo.

🔀

Condicional (If / Check)

Toma decisiones: si X ocurre → haz Y. La base de cualquier lógica de juego.

📦

Variables

Cajas que guardan números o texto. Esenciales para puntuaciones, vidas o temporizadores.

🌱

Clones

Crea copias de un personaje en tiempo real. Perfecto para flores, estrellas, partículas...

📍

Set Position / Last Touch

Mueve un personaje a coordenadas exactas o al punto donde tocas la pantalla.

🗺️ Estructura básica de cualquier programa en Hopscotch

WHEN Game Starts
  → Aquí configuras el estado inicial (tamaño, posición, variables)

WHEN Character is tapped
  → Aquí defines qué pasa al tocar el personaje

WHEN Game Starts
  REPEAT FOREVER
    → Aquí va todo lo que se repite constantemente (movimiento, comprobaciones)
        
💡 Recuerda: puedes tener varios bloques WHEN sobre el mismo personaje. Cada uno es una "regla" independiente que se ejecuta en paralelo.

🎮 Coordenadas en Hopscotch

La pantalla del iPad tiene X (izquierda-derecha) e Y (arriba-abajo). El centro es aproximadamente X: 512, Y: 384. Los bloques Last Touch X y Last Touch Y te dan la posición del último dedo en pantalla.

↖ (0,768)⬆ Y+↗ (1024,768) ⬅ X-● (512,384)X+ ➡ ↙ (0,0)⬇ Y-↘ (1024,0)
⚠️ Antes de empezar: Abre Hopscotch, toca el + para crear un proyecto nuevo y ponle nombre: "Primavera_TuNombre". Así no se te perderá.
🗓️

Plan de la sesión (55 min)

Aquí tienes la distribución del tiempo. Cada fase está diseñada para que nadie se quede atrás y los más rápidos siempre tengan dónde avanzar.

0 – 7 min

🚀 Arranque y repaso

El profesor introduce brevemente Hopscotch (si es la primera vez) o recuerda los conceptos de la sesión anterior. Los alumnos crean su proyecto y lo nombran correctamente.

7 – 15 min

📚 Lectura de la teoría

Revisad juntos la pestaña Introducción: los 6 conceptos clave y la estructura básica de un programa. Pregunta dudas ahora, no durante el reto.

15 – 30 min

🌱 Nivel Semilla (todos)

Todo el mundo trabaja en la Flor que crece. Es el punto de partida común. Si ya sabes hacerlo, perfecto: añade las mejoras opcionales antes de saltar al siguiente nivel.

30 – 45 min

🌿 Nivel Brote (quien haya terminado Semilla)

La Mariposa y el contador. Introduce variables y condicionales. Quien acabe antes puede enriquecer la escena añadiendo más personajes.

45 – 52 min

🌳 Nivel Roble (alumnos avanzados)

La Abeja inteligente y la polinización. Combina todo lo aprendido: bucles, colisiones, clones y posicionamiento dinámico.

52 – 55 min

🎤 Mini-exposición final

2–3 alumnos voluntarios proyectan su proyecto en pantalla y explican en 30 segundos qué bloque les resultó más difícil. Cierre de sesión.

🏅 Regla de oro: Nunca te quedes bloqueado más de 3 minutos. Levanta la mano, usa la pestaña de teoría o pregunta a un compañero de al lado antes de que el profesor llegue.
🌱

Nivel Semilla — La Flor que Crece

Objetivo: crear una flor que empiece pequeña y crezca cuando la tocas, con sonido y animación de color. Conceptos: eventos, tamaño, sonido.

🎯 Resultado esperado

Al terminar este nivel tendrás una flor que: (1) aparece pequeña al iniciar, (2) crece cada vez que la tocas, (3) emite un sonido al crecer, y (4) cambia de color de forma cíclica.

⏱️ Tiempo estimado: 15 minutos. Si vas más rápido, añade las mejoras opcionales al final.

📋 Pasos a seguir

  1. Toca + para añadir un personaje. Busca en la biblioteca una flor o una planta. Si no encuentras ninguna, elige cualquier personaje redondeado y renómbralo "Flor".
  2. Añade el evento When Game Starts. Dentro, coloca el bloque Set Size to 40%. Esto hace que la flor empiece pequeña.
  3. Añade un segundo bloque de evento: When Character is Tapped. Dentro coloca: Change Size by 20. Prueba ya: ¿crece al tocarla?
  4. Dentro del mismo evento When Tapped, añade también Play Sound → Happy (o el que más te guste). Ya tienes sonido.
  5. Para el color: después de Change Size, añade Set Color → Random Color. Así cambiará de color cada vez que la toques.
  6. Añade un tercer evento: When Game Starts + Repeat Forever + dentro Turn 2 degrees. Tu flor girará suavemente en bucle.
  7. Pulsa ▶ y prueba tu proyecto. ¿Crece, suena, gira y cambia de color?

💻 Estructura de código de referencia

WHEN Game Starts
  Set Size 40%
  Set Color Green

WHEN Character is Tapped
  Change Size by 20
  Play Sound Happy
  Set Color Random Color

WHEN Game Starts
  Repeat Forever
    Turn 2 degrees
        

🌟 Mejoras opcionales (si acabas antes)

🔍 ¿Sabes por qué usamos dos bloques "When Game Starts" separados? Porque uno se ejecuta una sola vez (configuración inicial) y el otro tiene un Repeat Forever que corre en paralelo. Hopscotch permite tener varios "hilos" corriendo a la vez, como si fueran dos empleados haciendo tareas distintas al mismo tiempo.

✅ Antes de pasar al siguiente nivel, comprueba que tu proyecto tiene:

🌿

Nivel Brote — La Mariposa y el Contador

Objetivo: programar una mariposa que persigue tu dedo y un contador de polinizaciones. Conceptos: Repeat Forever, Set Position, Variables, If / Check Once if.

🎯 Resultado esperado

Una mariposa que sigue tu dedo por la pantalla. Cada vez que toca la flor del nivel anterior, un contador sube. Cuando el contador llega a 5, aparece un mensaje de victoria. Aprenderás a crear y usar tu primera variable.

📌 Este nivel amplía el proyecto anterior. No crees uno nuevo: abre el mismo y añade la mariposa como un segundo personaje.

Parte A — Dedo Magnético 🧲

  1. Añade un nuevo personaje: elige una mariposa de la biblioteca. Ponla en el centro de la pantalla.
  2. Crea un evento When Game Starts + Repeat Forever. Dentro añade el bloque Set Position:
    • X → Last Touch X
    • Y → Last Touch Y
  3. Prueba: la mariposa debería saltar directamente a donde tocas. ¿Funciona?
  4. Ahora suavizamos el movimiento. En lugar de Set Position exacto, usaremos Move Toward X / Move Toward Y con velocidad 8. Así irá persiguiendo tu dedo de forma fluida.
WHEN Game Starts
  Repeat Forever
    Move to X: Last Touch X  Y: Last Touch Y
    — o versión suave: —
    Set X (Self X) + ((Last Touch X - Self X) / 6)
    Set Y (Self Y) + ((Last Touch Y - Self Y) / 6)
        
🧮 La fórmula de suavizado (Self X) + ((Destino - Self X) / 6) se llama interpolación lineal. Cada fotograma recorre 1/6 de la distancia que le queda: así nunca llega de golpe.

Parte B — Variable de Polinizaciones 🌸

  1. Ve a la sección de Variables (icono de caja). Crea una nueva variable llamada polinizaciones con valor inicial 0.
  2. Crea un objeto de texto en pantalla. En su código: When Game Starts → Repeat Forever → Set Text to "🌸 " + polinizaciones. Así verás el contador en pantalla.
  3. En la mariposa, añade el evento When bumps → Flor. Dentro: Change polinizaciones by 1.
  4. Prueba: ¿sube el contador cuando la mariposa toca la flor?

Parte C — Condicional de Victoria 🏆

  1. En la mariposa (o en un objeto nuevo), añade: When Game Starts → Repeat Forever → Check Once if polinizaciones ≥ 5.
  2. Dentro del if: Set Text to "¡PRIMAVERA COMPLETA! 🌸". También puedes añadir Play Sound → Win.
  3. Mejora: haz que la flor cree un clon de sí misma cada vez que se polinice: When bumps Mariposa → Create a clone.
— Mariposa: detección de colisión —
WHEN bumps Flor
  Change polinizaciones by 1
  Play Sound Boing

— Mariposa: condición de victoria —
WHEN Game Starts
  Repeat Forever
    Check Once if polinizaciones5
      Set Text "¡PRIMAVERA COMPLETA! 🌸"
      Play Sound Win
        

🌟 Mejoras opcionales

✅ Antes de pasar al Nivel Roble, comprueba:

🌳

Nivel Roble — El Jardín Vivo

Objetivo: construir un jardín interactivo con clones, temporizador y mecánica de juego completa. Conceptos: Clone, Timer, variables avanzadas, lógica de juego.

🎯 Resultado esperado

Un jardín que "florece" con clones generados dinámicamente. Un temporizador regresivo de 30 segundos. Cuando el tiempo llega a 0, el juego termina y muestra la puntuación final. Cada clon se destruye al tocarlo (y da puntos).

🔥 Este es el nivel más desafiante. No pasa nada si no lo terminas hoy: lo que consigas ya es un logro. La clave está en entender la lógica, no en copiar el código.

Parte A — Generador de Flores (Clones) 🌸

  1. Crea un nuevo personaje: la "Flor Madre". Colócala fuera de la pantalla (ej. X: -100, Y: -100) para que no se vea. Será la fábrica invisible de flores.
  2. En la Flor Madre: When Game Starts → Repeat Forever → Wait 1.5 seconds → Create a Clone at Random X, Random Y.
  3. En la Flor Madre, añade el evento para el clon: When Clone Created → Set Size 10% → Repeat 20 times → Change Size by 8. El clon "germina" apareciendo y creciendo.
  4. Haz que cada clon tenga un color aleatorio: When Clone Created → Set Color Random.
  5. Cuando se toca un clon: When Clone is Tapped → Change puntos by 10 → Destroy Self.
— Flor Madre: genera clones —
WHEN Game Starts
  Repeat Forever
    Wait 1.5 seconds
    Create a Clone at X: Random(50, 950)  Y: Random(50, 700)

— Clon: comportamiento al aparecer —
WHEN Clone Created
  Set Color Random Color
  Set Size 10%
  Repeat 20 times
    Change Size by 7
    Wait 0.05 seconds

— Clon: al tocarlo —
WHEN Clone is Tapped
  Change puntos by 10
  Play Sound Pop
  Destroy Self
        

Parte B — Temporizador Regresivo ⏱️

  1. Crea la variable tiempo con valor inicial 30.
  2. Crea un objeto de texto que muestre el tiempo. Código: When Game Starts → Repeat Forever → Set Text to "⏱️ " + tiempo.
  3. En un objeto "Control" (puede ser invisible): When Game Starts → Repeat 30 times → Wait 1 second → Change tiempo by -1.
  4. Después del bucle de 30 iteraciones, añade: Set Text to "FIN: " + puntos + " puntos 🏆".
💡 Truco: Para que el texto de "FIN" aparezca en el centro de la pantalla, usa Set Position X: 512, Y: 384 justo antes del mensaje final.

Parte C — Pulir la Experiencia 🎨

  1. Añade una animación de aparición al texto de puntuación: Set Size 0 → Repeat 10 → Change Size by 15.
  2. Haz que el fondo cambie de color progresivamente según el tiempo restante: cuando tiempo < 10Set Background Color Red.
  3. Añade un multiplicador de puntos: si el jugador toca 3 flores seguidas en menos de 2 segundos, los puntos se doblan temporalmente.

🌟 Extensiones avanzadas

✅ Criterios para Nivel Roble completo:

Bonus — Desafíos para Expertos

¿Has completado el Nivel Roble? Estos retos no tienen guía paso a paso: tienes que investigar, experimentar y resolver. Así es como trabajan los programadores de verdad.

🧭 Regla de los bonus: aquí no hay instrucciones detalladas. Tienes el enunciado, los bloques que necesitas y el resultado esperado. El cómo lo descubres tú. Usa la ayuda integrada de Hopscotch y experimenta.
🌈

Estela Arcoíris

Haz que la mariposa (o tu personaje principal) deje un rastro de colores al moverse usando el bloque Leave a Trail. El color del rastro debe cambiar progresivamente usando el ángulo de movimiento como valor.

★★☆☆☆
+20 pts
🌧️

Lluvia de Pétalos

Crea un personaje "Pétalo" invisible fuera de pantalla. Cada 0.3 segundos, genera un clon en la parte superior. Cada clon cae con Change Y by -5 y rota. Al salir de pantalla (Y < 0), se destruye solo.

★★★☆☆
+30 pts
📱

Efecto Agitar

Usa el sensor del iPad: When iPad is Shaken. Al agitar, todas las flores presentes deben explotar (cambiar de tamaño rápidamente a 200% y luego a 0%) y destruirse, dando el doble de puntos.

★★★☆☆
+30 pts
🎵

DJ Primaveral

Crea 4 botones invisibles en los bordes de la pantalla. Cada uno reproduce una nota musical diferente al tocarlos. Usa variables para construir una mini secuencia que se repita en bucle.

★★★★
+40 pts
⏱️

Modo Supervivencia

En lugar de un temporizador fijo, el tiempo empieza en 10 y cada flor que tocas añade +2 segundos. Si el tiempo llega a 0, game over. El desafío: sobrevivir el máximo tiempo posible.

★★★★
+40 pts
🤖

Enemigo con IA

Crea una "Oruga" que persiga activamente a tu personaje usando la misma fórmula de interpolación del Nivel Brote. Si te toca, pierdes 1 vida. Velocidad de persecución: empieza lenta y aumenta con el tiempo.

★★★★★
+50 pts · Máster

🏆 ¿Cuántos puntos tienes?

Suma los puntos de cada bonus completado y los de los niveles:

🌱
Semilla
10 pts
🌿
Brote
20 pts
🌳
Roble
40 pts
Bonus
+20/50 pts
🏅 100+ puntos = Senior Developer
🥇 70–99 = Junior Developer
🌱 40–69 = Programador en Prácticas