3.2 - Simulación de máquinas clicar y responder "el parquímetro"

 

3.1: Simulación de un parquímetro en Scratch

🎯 Objetivo de este tutorial

Vamos a construir un parquímetro virtual que simule el funcionamiento de una máquina de aparcamiento. Aprenderás a:

  • Usar objetos como botones y monedas con eventos de clic.

  • Gestionar variables (dinero, tiempo, cambio).

  • Implementar condicionales para evitar valores negativos.

  • Realizar cálculos matemáticos en tiempo real (precio por minuto).

  • Inicializar variables al empezar el programa.


🖼️ Paso 1: Diseñar la interfaz del parquímetro

  1. Dibuja el fondo del parquímetro con un editor de imágenes o dentro de Scratch.

  2. Crea los siguientes objetos (sprites):

    • Monedas de diferentes valores (2€, 1€, 0,50€, 0,20€, 0,10€, 0,05€).

    • Botón "+" (más tiempo).

    • Botón "-" (menos tiempo).

    • (Opcional) Un texto que muestre "Precio: 1,20 €/hora".

  3. Coloca los objetos en la pantalla de forma ordenada, como en la imagen del vídeo.


📊 Paso 2: Crear las variables globales

Ve a la categoría Datos (Variables) y crea tres variables para todos los objetos:

VariableSignificado
dineroCantidad total introducida en la máquina (en euros).
tiempoMinutos de estacionamiento seleccionados.
cambioDinero que se devuelve al usuario (dinero - coste).

💡 Asegúrate de que sean globales (para todos los objetos), no locales.


🪙 Paso 3: Programar las monedas (sumar dinero)

Cada moneda, al hacer clic, debe sumar su valor a la variable dinero y actualizar el cambio.

Ejemplo para la moneda de 2 €:

text
al hacer clic en este objeto
cambiar [dinero] por (2)
fijar [cambio] a ((dinero) - ((tiempo) * (0.02)))

El precio por minuto es 0,02 € (1,20 € / 60 minutos).

Para las demás monedas, usa el mismo código pero cambiando el valor:

  • 1 € → cambiar dinero por 1

  • 0,50 € → cambiar dinero por 0.5

  • 0,20 € → cambiar dinero por 0.2

  • 0,10 € → cambiar dinero por 0.1

  • 0,05 € → cambiar dinero por 0.05

💡 Truco: Puedes copiar el código de una moneda y arrastrarlo a las demás, luego solo cambias el número.


⏱️ Paso 4: Programar los botones de tiempo (+ y -)

Los botones incrementan o decrementan el tiempo en minutos (de 5 en 5, por ejemplo).

Botón "+" (sumar 5 minutos):

text
al hacer clic en este objeto
cambiar [tiempo] por (5)
fijar [cambio] a ((dinero) - ((tiempo) * (0.02)))

Botón "-" (restar 5 minutos): pero con una condición para que no baje de 0.


🛡️ Paso 5: Evitar tiempo negativo (condicional)

Para que el tiempo no sea negativo, usamos un condicional:

text
al hacer clic en este objeto
si <(tiempo) >= [5]> entonces
    cambiar [tiempo] por (-5)
    fijar [cambio] a ((dinero) - ((tiempo) * (0.02)))

Así solo resta si hay al menos 5 minutos disponibles.


🧮 Paso 6: Calcular el cambio correctamente

El cambio se calcula restando el coste del tiempo al dinero introducido.

Fórmula:

text
cambio = dinero - (tiempo * 0.02)
  • tiempo está en minutos.

  • 0.02 es el precio por minuto (1,20 € / 60).

Este cálculo debe ejecutarse cada vez que se pulse una moneda o un botón de tiempo, para que el cambio se actualice en tiempo real.


🔁 Paso 7: Reutilizar el cálculo (copia en todos los objetos)

Como el cálculo es corto, puedes copiar la línea de fijar cambio a ... en todos los objetos (monedas y botones). Así, al hacer clic en cualquiera, el cambio se recalcula.

Si el cálculo fuera más complejo, podrías usar un bloque personalizado (Mis Bloques) para no repetir código, pero aquí es sencillo.


🧹 Paso 8: Inicializar las variables al empezar

Para que el parquímetro empiece limpio, añade este código en el escenario (o en un objeto cualquiera):

text
al presionar bandera
fijar [dinero] a [0]
fijar [tiempo] a [0]
fijar [cambio] a [0]

Esto asegura que al reiniciar el programa, todos los valores vuelvan a 0.


✅ Resumen del tutorial 3.1

ElementoFunción
MonedasSumar su valor a dinero al hacer clic.
Botón "+"Sumar 5 minutos a tiempo.
Botón "-"Restar 5 minutos a tiempo (con condición para no bajar de 0).
Cálculo de cambiocambio = dinero - (tiempo * 0.02) ejecutado tras cada interacción.
InicializaciónPoner dinero, tiempo y cambio a 0 al empezar.

🧠 Ampliaciones posibles

  • Añadir un botón "Reset" que reinicie todas las variables.

  • Mostrar mensajes emergentes cuando el cambio sea negativo (avisar de que falta dinero).

  • Limitar el tiempo máximo (ej: no más de 120 minutos).

  • Sonido al introducir monedas (usar la extensión de sonido).

Con este proyecto, has creado una simulación funcional que combina variables, eventos, condicionales y operaciones matemáticas. ¡Excelente base para futuras simulaciones o juegos de gestión!

Comentarios

Entradas más populares de este blog

1.4 - Interfaz de usuario-Xnergic TCM

1.7 - Bloques de uso más común-Xnergic TCM

1.5 - Personajes-Xnergic