Las condiciones le permiten a tu programa tomar decisiones: hacer una cosa si algo es verdad, y otra cosa si no lo es.
¿Alguna vez has jugado un videojuego donde el personaje muere al tocar un enemigo? Eso es una condición. El juego pregunta: "¿el jugador tocó al enemigo?" Si la respuesta es sí, resta una vida. Si no, el juego sigue normal.
En Scratch, esa lógica se llama condicional, y la usas con bloques muy sencillos.
El bloque "si... entonces"
El bloque más importante para tomar decisiones es el bloque "si... entonces". Lo encuentras en la categoría Control (color naranja).
Así funciona:
- Tú defines una condición (algo que puede ser verdadero o falso).
- Si la condición es verdadera, Scratch ejecuta los bloques que pusiste adentro.
- Si es falsa, los ignora y sigue adelante.
Piénsalo como el empleado de la entrada en Liverpool: si traes credencial, puedes pasar. Si no, te piden que esperes.
La historia de Diego y su primer mini-juego
Diego tiene 13 años y vive en Monterrey. Quería hacer un juego donde su personaje recoge monedas. Pero no sabía cómo hacer que el juego detectara el contacto.
Su maestra le mostró el bloque "si... entonces" combinado con "¿tocando [objeto]?". Diego lo probó así:
al presionar bandera verde
por siempre
si <¿tocando [Moneda]?> entonces
cambiar [puntos] por (1)
reproducir sonido [Coin]
end
end
El resultado fue inmediato. Cada vez que su personaje tocaba la moneda, el marcador subía. Diego gritó de emoción.
Ese bloque tan simple fue la base de su juego completo.
El bloque "si... entonces... si no"
A veces necesitas dos caminos: uno si la condición es verdadera, y otro si es falsa. Para eso usas el bloque "si... entonces... si no".
Imagina una tienda en línea como Mercado Libre. Si el producto tiene stock, muestra el botón de compra. Si no tiene stock, muestra "Agotado". Eso es exactamente un "si... entonces... si no".
En Scratch se ve así:
si <(stock) > (0)> entonces
decir [¡Puedes comprar!]
si no
decir [Producto agotado]
end
Dos caminos claros. Scratch elige uno según la situación.
La historia de Sofía y el juego del semáforo
Sofía tiene 11 años y vive en la Ciudad de México. Su proyecto escolar era crear una animación educativa sobre los semáforos.
Quería que el sprite del carro se detuviera con la luz roja y avanzara con la luz verde. Usó variables y condiciones para lograrlo.
Su código era así:
al presionar bandera verde
por siempre
si <(color_semaforo) = [verde]> entonces
mover (5) pasos
si no
mover (0) pasos
end
end
Después agregó otro sprite para el semáforo, que cambiaba de color cada 3 segundos con un bucle. El carro respondía automáticamente.
Su maestra quedó impresionada. Sofía había combinado lo que aprendió sobre bucles con las condiciones nuevas. Eso es exactamente lo que tú también puedes hacer.
Condiciones con el teclado
Otra forma muy común de usar condiciones es detectar teclas. Scratch tiene el bloque "¿tecla [espacio] presionada?" dentro de Sensores.
Combinado con "si... entonces", puedes crear controles de movimiento básicos:
al presionar bandera verde
por siempre
si <¿tecla [flecha derecha] presionada?> entonces
mover (10) pasos
end
si <¿tecla [flecha izquierda] presionada?> entonces
mover (-10) pasos
end
end
Este patrón es la base de casi todos los juegos de plataforma. Cuando presionas una tecla, el personaje se mueve. Cuando sueltas, se detiene.
Fácil, ¿verdad?
Condiciones con variables y números
Recuerdas las variables de lecciones anteriores. Puedes usarlas dentro de condiciones para comparar valores.
Por ejemplo, si quieres que el juego termine cuando el jugador llegue a 10 puntos:
si <(puntos) = (10)> entonces
decir [¡Ganaste! por (2) segundos]
detener [todo]
end
O si quieres dar una alerta cuando le quedan pocas vidas:
si <(vidas) < (2)> entonces
decir [¡Cuidado, pocas vidas! por (2) segundos]
end
Estas comparaciones usan operadores que encuentras en la categoría Operadores (color verde): igual, mayor que, menor que.
La historia de Ramón y el quiz de geografía
Ramón es estudiante de secundaria en Guadalajara. Para su clase de geografía, quiso hacer un mini-quiz en Scratch. La pregunta era: ¿cuál es la capital de México?
Usó el bloque "preguntar [texto] y esperar" de Sensores. La respuesta del usuario se guarda automáticamente en la variable especial "respuesta".
Su código quedó así:
preguntar [¿Cuál es la capital de México?] y esperar
si <(respuesta) = [Ciudad de México]> entonces
decir [¡Correcto! Muy bien. por (3) segundos]
si no
decir [Incorrecto. Es la Ciudad de México. por (3) segundos]
end
Ramón probó el quiz con sus compañeros. Todos querían jugar. Lo que empezó como tarea se convirtió en el juego favorito del salón.
La lección: con una sola condición puedes crear algo muy entretenido.
Condiciones dentro de condiciones
A veces necesitas revisar más de una cosa al mismo tiempo. Puedes poner condiciones dentro de condiciones. Esto se llama condiciones anidadas.
Por ejemplo, en un juego de preguntas con niveles de dificultad:
si <(nivel) = (2)> entonces
si <(respuesta) = [correcta]> entonces
cambiar [puntos] por (20)
end
end
Aquí Scratch primero revisa el nivel. Si es nivel 2, entonces revisa la respuesta. Solo si ambas condiciones son verdaderas, suma 20 puntos.
No abuses de las condiciones anidadas. Si pones demasiadas juntas, tu código se vuelve difícil de leer.
Errores comunes al usar condiciones
Aprender de los errores ajenos te ahorra tiempo. Estos son los más frecuentes:
Error 1: Poner el bloque "si" fuera de un bucle. Si pones tu condición fuera de un "por siempre", Scratch solo la revisa una vez al inicio. Después, aunque el jugador toque al enemigo, no pasará nada. Solución: casi siempre pon tus condiciones dentro de un bucle.
Error 2: Confundir "=" con "mayor que" o "menor que".
Si quieres detectar que el jugador tiene 3 vidas o menos, usa (vidas) < (4) o (vidas) ≤ (3). Si usas (vidas) = (3), solo reaccionará cuando sean exactamente 3, no antes.
Error 3: Olvidar el bloque "si no" cuando lo necesitas. Si tu juego necesita dos comportamientos distintos (avanzar o detenerse, ganar o perder), usa el bloque completo "si... entonces... si no". El bloque simple "si... entonces" solo actúa cuando la condición es verdadera y después no hace nada.
Error 4: Escribir mal el nombre de una variable. Scratch distingue entre mayúsculas y minúsculas. "Puntos" y "puntos" son variables diferentes. Verifica que el nombre en tu condición sea exactamente igual al nombre que usaste al crearla.
Combinando todo: bucles + condiciones
La combinación más poderosa en Scratch es: un bucle "por siempre" que contiene condiciones.
Esto le da vida a cualquier juego. El bucle revisa constantemente. Las condiciones reaccionan cuando algo cambia.
Aquí un ejemplo completo de un mini-juego de recolección:
al presionar bandera verde
establecer [puntos] a (0)
establecer [vidas] a (3)
por siempre
si <¿tocando [Moneda]?> entonces
cambiar [puntos] por (1)
end
si <¿tocando [Enemigo]?> entonces
cambiar [vidas] por (-1)
end
si <(vidas) = (0)> entonces
decir [Game Over] por (2) segundos
detener [todo]
end
si <(puntos) = (10)> entonces
decir [¡Ganaste! por (2) segundos]
detener [todo]
end
end
Con 20 bloques simples tienes un juego funcional. ¿No es increíble?
Lo que aprendiste hoy
Las condiciones son el corazón de cualquier programa inteligente. Sin ellas, tu código solo haría lo mismo siempre, sin importar lo que pase.
Ahora tú ya sabes cómo hacer que Scratch reaccione, decida y responda. Eso es programar de verdad.