🧠 Capítulo 8: Condiciones avanzadas y lógica del programa
En el capítulo anterior conseguiste algo muy importante:
👉 que el programa tenga memoria (variables).
Ahora vamos a dar el siguiente paso:
👉 usar esa información para tomar decisiones inteligentes.
🧠 ¿Qué significa esto?
No se trata solo de reaccionar al teclado…
👉 se trata de que el programa decida qué hacer según lo que está pasando.
1. Comparar valores
Podemos hacer preguntas como:
- ¿vidas es 0?
- ¿puntos es mayor que 10?
En Python usamos:
tobi.say("GAME OVER", 2)
¿Qué significa?
- <= → menor o igual
- Si se cumple → ejecuta el código
2. Varias condiciones
Podemos controlar diferentes situaciones:
tobi.say("GAME OVER", 2)
elif puntos >= 10:
tobi.say("¡Nivel completado!", 2)
¿Qué hace esto?
- Primero comprueba vidas
- Si no se cumple → comprueba puntos
3. Usar condiciones dentro del juego
Ahora lo integramos todo:
puntos = 0
vidas = 3
velocidad = 5
while True:
if tobi.iskeypressed("w"):
tobi.move(velocidad)
puntos = puntos + 1
elif tobi.iskeypressed("s"):
tobi.move(-velocidad)
vidas = vidas - 1
if vidas <= 0:
tobi.say("GAME OVER", 2)
tobi.delay(0.05)
👉 Ahora el programa reacciona a lo que ocurre.
⚠️ Problema importante
Este código tiene un fallo:
👉 aunque salga GAME OVER… el programa sigue funcionando.
👉 No se detiene.
4. Detener el programa (break)
Para parar el bucle usamos break:
tobi.say("GAME OVER", 2)
break # detiene el bucle
👉 Ahora el programa termina correctamente.
5. Lógica completa
Ya tenemos un sistema con sentido:
- Acción → cambia variables
- Variables → generan decisiones
- Decisiones → cambian el comportamiento
👉 Esto es programación real.
🧠 Cómo piensa Python
En cada ciclo:
- Lee entradas
- Actualiza variables
- Evalúa condiciones
- Actúa en consecuencia
👉 Es un sistema completo.
🚀 Reto Abutuber: Lógica completa
Crea un programa donde:
- W → suma puntos
- S → resta vidas
- Si vidas = 0 → GAME OVER y se detiene
- Si puntos = 10 → mensaje de victoria
Extra: muestra puntos y vidas en pantalla
Ver solución
puntos = 0
vidas = 3
velocidad = 5
while True:
if tobi.iskeypressed("w"):
tobi.move(velocidad)
puntos = puntos + 1
elif tobi.iskeypressed("s"):
tobi.move(-velocidad)
vidas = vidas - 1
if vidas <= 0:
tobi.say("GAME OVER", 2)
break
if puntos >= 10:
tobi.say("¡Ganaste!", 2)
tobi.delay(0.05)
💡 Consejo Abutuber: Un buen programa no solo ejecuta acciones… toma decisiones basadas en lo que ocurre.