Saltar al contenido
EjemplosEnglishEspacio →

Adivina el número

Adivina un número secreto del 1 al 100 en siete intentos.

Nivel
Intermedio
Conceptos:
Entrada y salida
Mientras
Si
Azar
Lógicos
Abrir en Codoritmo

Ejecuta, modifica y depura este ejemplo en el navegador.

Lo que aprenderás

Aleatorio elige el número secreto y Mientras repite mientras se cumplan dos condiciones unidas con Y y NO. Abs mide qué tan cerca estás y Escribir Sin Saltar deja el cursor en la misma línea.

Código

guess-number.psc · 33 líneas
Algoritmo AdivinaNumero    Definir secreto, intento, intentos Como Entero    Definir acerto Como Logico    secreto <- Aleatorio(1, 100)    intentos <- 0    acerto <- Falso    Escribir "Pensé un número del 1 al 100. Tienes 7 intentos."    Mientras (NO acerto) Y intentos < 7 Hacer        intentos <- intentos + 1        Escribir "Intento ", intentos, ":"        Leer intento        Si intento = secreto Entonces            acerto <- Verdadero        SiNo            Si intento < secreto Entonces                Escribir Sin Saltar "Más alto"            SiNo                Escribir Sin Saltar "Más bajo"            FinSi            // Abs da la distancia sin importar el signo            Si Abs(intento - secreto) <= 5 Entonces                Escribir ", ¡estás muy cerca!"            SiNo                Escribir "..."            FinSi        FinSi    FinMientras    Si acerto Entonces        Escribir "¡Correcto! Lo lograste en ", intentos, " intentos."    SiNo        Escribir "Se acabaron los intentos. Era el ", secreto, "."    FinSiFinAlgoritmo

Diagrama de flujo

Cada bloque del diagrama corresponde a una instrucción del código.

Algoritmo AdivinaNumeroSíNoSíNoSíNoSíNoSíNoAlgoritmo AdivinaNumeroAlgoritmo AdivinaNumeroDefinir secreto, intento, intentos Como EnteroDefinir secreto, intento,intentos Como EnteroDefinir acerto Como LogicoDefinir acerto Como Logicosecreto <- Aleatorio(1, 100)secreto <- Aleatorio(1, 100)intentos <- 0intentos <- 0acerto <- Falsoacerto <- FalsoEscribir "Pensé un número del 1 al 100. Tienes 7 intentos."Escribir "Pensé un número del1 al 100. Tienes 7 intentos."Mientras (NO acerto) Y intentos < 7 Hacer(NO acerto) Yintentos < 7intentos <- intentos + 1intentos <- intentos + 1Escribir "Intento ", intentos, ":"Escribir "Intento ", intentos,":"Leer intentoLeer intentoSi intento = secreto Entoncesintento = secretoacerto <- Verdaderoacerto <- VerdaderoSi intento < secreto Entoncesintento < secretoEscribir Sin Saltar "Más alto"Escribir Sin Saltar "Más alto"Escribir Sin Saltar "Más bajo"Escribir Sin Saltar "Más bajo"Si Abs(intento - secreto) <= 5 EntoncesAbs(intento -secreto) <= 5Escribir ", ¡estás muy cerca!"Escribir ", ¡estás muy cerca!"Escribir "..."Escribir "..."Si acerto EntoncesacertoEscribir "¡Correcto! Lo lograste en ", intentos, " intentos."Escribir "¡Correcto! Lolograste en ", intentos, "intentos."Escribir "Se acabaron los intentos. Era el ", secreto, "."Escribir "Se acabaron losintentos. Era el ", secreto,"."FinAlgoritmoFinAlgoritmo

Ejemplo de ejecución

Esto muestra el programa al ejecutarlo. Las respuestas escritas por el usuario aparecen resaltadas.

Pensé un número del 1 al 100. Tienes 7 intentos.Intento 1:Respuesta del usuario: 50Más bajo...Intento 2:Respuesta del usuario: 25¡Correcto! Lo lograste en 2 intentos.

Desafío

Al final, muestra un mensaje distinto si ganaste en tres intentos o menos.

Ver pista

Dentro del Si acerto, agrega otro Si que compare intentos <= 3.

Abrir en Codoritmo
  • Ordenamiento burbuja

    Ordena números al azar intercambiando vecinos, y se detiene apenas quedan ordenados.

    Intermedio
  • Ordenamiento por inserción

    Inserta cada número entre los ya ordenados, como al acomodar cartas en la mano.

    Intermedio
  • Ordenamiento Shell

    Una inserción entre elementos lejanos, con un salto que se achica en cada pasada.

    Avanzado