Semana 3 · Día 5: Juego de adivinanza con pistas en Python

Semana 3 · Día 5: Juego de adivinanza con pistas en Python

Construye en 60 minutos un juego que responde «demasiado bajo» o «demasiado alto», termina al acertar y corrige una condición que impide iniciar el bucle.

Entrega de hoy

Al terminar los 60 minutos tendrás una carpeta dia-05-adivinanza/ con cuatro evidencias:
  • adivinanza.py, un juego que da las pistas «demasiado bajo» y «demasiado alto» hasta acertar;
  • prediccion.md, con el recorrido de tres intentos escrito antes de ejecutar;
  • pruebas.txt, con una partida de tres intentos y otra de un solo intento;
  • error_condicion.py, una copia donde provocarás y corregirás un bucle que nunca empieza.
La etiqueta exacta de la malla es Semana 3 · Día 5: Crear un juego simple de adivinanza. Hoy combinarás while con if, elif y else. El número secreto quedará fijo para que puedas comprobar cada rama sin depender del azar. No añadas todavía números aleatorios, límite de intentos, funciones ni manejo de errores.

Sesión de 60 minutos

00:00-10:00 · 10 minutos de repaso y predicción

Crea dia-05-adivinanza/prediccion.md. Escribe estas dos variables sin ejecutarlas:
secreto = 7
intento = 0
Responde en orden:
  1. ¿intento != secreto es verdadero o falso al comenzar?
  2. Si la primera respuesta del jugador es 3, ¿qué pista debe aparecer?
  3. Si después escribe 9, ¿qué pista debe aparecer?
  4. Si termina con 7, ¿qué mensaje debe aparecer?
  5. Después de acertar, ¿intento != secreto sigue siendo verdadero?
Deja también esta predicción:
Intento 1: 3 → Demasiado bajo.
Intento 2: 9 → Demasiado alto.
Intento 3: 7 → ¡Acertaste!
El while termina porque 7 != 7 es falso.
La última línea importa más que acertar el número: explica por qué el programa deja de pedir intentos.

10:00-30:00 · 20 minutos con el recurso de la malla

Abre Learn Python - Full Course for Beginners [Tutorial], el curso de freeCodeCamp nombrado en la malla. Mira desde 2:14:13, capítulo While Loop, hasta 2:32:44, cuando empieza For Loops. Dentro de ese tramo, Building a Guessing Game comienza en 2:20:21. La descripción oficial del video incluye esos marcadores y permite elegir una pista doblada al español desde el engranaje del reproductor. 1
Loading content card…
En prediccion.md, anota solo estas tres observaciones:
  1. La condición del while expresa cuándo debe continuar el juego.
  2. La variable del intento se actualiza con input() dentro del bucle.
  3. Al acertar, la condición deja de cumplirse y Python sale del bucle.
El video amplía el ejemplo con un límite de intentos. No copies esa parte hoy: primero deja funcionando el recorrido mínimo de pista baja, pista alta y acierto.

30:00-55:00 · 25 minutos de juego y corrección

Crea dia-05-adivinanza/adivinanza.py:
secreto = 7
intento = 0

print("Tengo un número del 1 al 10.")

while intento != secreto:
    intento = int(input("Adivina: "))

if intento < secreto:
        print("Demasiado bajo.")
    elif intento > secreto:
        print("Demasiado alto.")
    else:
        print("¡Acertaste!")

print("Juego terminado.")
Antes de ejecutarlo, sigue la primera vuelta con el dedo:
  1. intento vale 0 y secreto vale 7.
  2. Como 0 != 7 es verdadero, Python entra al while.
  3. input() reemplaza el 0 por el número que escriba el jugador.
  4. Una sola rama decide la pista: menor, mayor o igual.
  5. Python vuelve a comprobar la condición del while.
Un while evalúa su condición antes de cada vuelta y repite el bloque mientras esa expresión sea verdadera. Si la condición ya es falsa en la primera comprobación, el bloque no se ejecuta ni una vez. 2
Ejecuta adivinanza.py. Introduce 3, después 9 y por último 7. La partida debe verse así:
Tengo un número del 1 al 10.
Adivina: 3
Demasiado bajo.
Adivina: 9
Demasiado alto.
Adivina: 7
¡Acertaste!
Juego terminado.
Copia la ejecución completa en pruebas.txt bajo PRUEBA 1: 3, 9, 7. Comprueba que las tres ramas hicieron trabajos distintos: if respondió al valor menor, elif al mayor y else a la igualdad. Python examina las condiciones de una cadena if/elif en orden y ejecuta solo el primer bloque cuya condición sea verdadera; si ninguna lo es, llega al else. 3
Ejecuta el juego otra vez y escribe 7 en el primer intento. Guarda la salida bajo PRUEBA 2: 7. Debe mostrar ¡Acertaste! sin imprimir ninguna pista anterior.
Ahora duplica el archivo como error_condicion.py. Cambia solo esta línea:
while intento != secreto:
por esta:
while intento == secreto:
Antes de ejecutar, predice si aparecerá Adivina:. Luego ejecuta la copia. Verás únicamente:
Tengo un número del 1 al 10.
Juego terminado.
No hay un error de sintaxis. El problema es lógico: intento comienza en 0, así que 0 == 7 es falso y el cuerpo del while se salta desde la primera comprobación.
Restaura while intento != secreto y repite 3, 9, 7. Confirma que reaparecen las tres preguntas y que el juego termina justo después del acierto. Guarda en prediccion.md una frase con este formato:
El operador incorrecto fue ___; impedía entrar al bucle porque ___. Lo corregí por ___ y comprobé que ___.

55:00-60:00 · 5 minutos de cierre de notas

Añade estas cuatro líneas al final de prediccion.md:
  1. El bucle continuó mientras: escribe la condición con tus palabras.
  2. La variable que cambió fue: indica dónde recibió cada intento nuevo.
  3. Cada pista dependió de: explica qué comparó if o elif.
  4. El error de condición fue: anota por qué el programa terminó sin preguntar.
Cierra con una ejecución limpia de adivinanza.py. Si otra persona quiere probarlo, cambia secreto = 7 antes de ejecutar y no le muestres el archivo. El código sigue siendo el mismo; solo cambia el número que debe encontrar.

Hecho cuando...

  • Existe dia-05-adivinanza/ con los cuatro archivos pedidos.
  • Predijiste las pistas para 3, 9 y 7 antes de ejecutar.
  • Explicaste por qué 7 != 7 detiene el while.
  • Viste el tramo 2:14:13-2:32:44 del curso nombrado en la malla.
  • adivinanza.py pide un número dentro del while.
  • La prueba 3, 9, 7 muestra una pista baja, una pista alta y el acierto.
  • Guardaste esa partida completa en pruebas.txt.
  • La prueba con 7 termina después de un solo intento.
  • Provocaste el error cambiando != por ==.
  • Explicaste por qué el programa defectuoso no mostró Adivina:.
  • Restauraste != y comprobaste de nuevo las tres vueltas.
  • Dejaste las cuatro notas de cierre.
  • No añadiste números aleatorios, límite de intentos, funciones ni manejo de errores.

This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.

Related content