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
Dibuja el fondo del parquímetro con un editor de imágenes o dentro de Scratch.
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".
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:
| Variable | Significado |
|---|---|
dinero | Cantidad total introducida en la máquina (en euros). |
tiempo | Minutos de estacionamiento seleccionados. |
cambio | Dinero 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 €:
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 10,50 € →
cambiar dinero por 0.50,20 € →
cambiar dinero por 0.20,10 € →
cambiar dinero por 0.10,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):
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:
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:
cambio = dinero - (tiempo * 0.02)tiempoestá en minutos.0.02es 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):
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
| Elemento | Función |
|---|---|
| Monedas | Sumar 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 cambio | cambio = dinero - (tiempo * 0.02) ejecutado tras cada interacción. |
| Inicialización | Poner 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
Publicar un comentario