Implementación de un juego de adivinanza en Python, JavaScript y C#

El desarrollo de juegos sencilols es una excelente práctica para comprender la lógica de control de flujo, la gestión de variables y la interacción con el usuario en diferentes lenguajes de programación. A continuación, se presenta la implementación de un juego de "Adivina el número" en tres de los lenguajes más utilziados actualmente: Python, JavaScript y C#.

1. Implementación en Python

En este ejemplo, utilizamos el módulo random para generar el valor secreto y un bucle while junto con una estructura try-except para validar que la entrada del usuario sea un entero válido.

import random

def iniciar_juego():
    numero_secreto = random.randint(1, 100)
    intentos_realizados = 0
    ha_ganado = False

    print("--- Juego de Adivinanza ---")

    while not ha_ganado:
        try:
            entrada = input("Introduce un número entre 1 y 100: ")
            sugerencia = int(entrada)
            intentos_realizados += 1

            if sugerencia < numero_secreto:
                print("El número buscado es mayor.")
            elif sugerencia > numero_secreto:
                print("El número buscado es menor.")
            else:
                print(f"¡Felicidades! Has acertado en {intentos_realizados} intentos.")
                ha_ganado = True
        except ValueError:
            print("Error: Por favor, ingresa un número entero válido.")

if __name__ == "__main__":
    iniciar_juego()

2. Implementación en JavaScript

Para la versión en JavaScript, se utiliza una lógica basada en el navegador mediante el uso de prompt para capturar datos y alert para mostrar mensajes de retroalimentación.

const ejecutarRetoNumerico = () => {
    const valorObjetivo = Math.floor(Math.random() * 100) + 1;
    let contador = 0;
    let adivinado = false;

    while (!adivinado) {
        let inputUsuario = prompt("Adivina el número (del 1 al 100):");
        
        if (inputUsuario === null) break; // Permite cancelar el juego

        let numero = parseInt(inputUsuario);
        contador++;

        if (numero === valorObjetivo) {
            alert(`¡Correcto! El número era ${valorObjetivo}. Te tomó ${contador} intentos.`);
            adivinado = true;
        } else if (numero < valorObjetivo) {
            alert("Intenta con un número más alto.");
        } else if (numero > valorObjetivo) {
            alert("Intenta con un número más bajo.");
        } else {
            alert("Por favor, ingresa un valor numérico válido.");
        }
    }
};

ejecutarRetoNumerico();

3. Implementación en C#

En C#, empleamos la clase Random y el método int.TryParse dentro de un bloque do-while. Este enfoque asegura que el programa no falle si el usuario introduce caracteres no numéricos en la consola.

using System;

namespace EjerciciosLogica
{
    class JuegoNumerico
    {
        static void Main(string[] args)
        {
            Random generador = new Random();
            int claveSecreta = generador.Next(1, 101);
            int intentos = 0;
            bool acertado = false;

            Console.WriteLine("Bienvenido al buscador de números.");

            do
            {
                Console.Write("Propón un número: ");
                string entrada = Console.ReadLine();

                if (int.TryParse(entrada, out int propuesta))
                {
                    intentos++;

                    if (propuesta == claveSecreta)
                    {
                        Console.WriteLine($"¡Éxito! Adivinaste el número en {intentos} intentos.");
                        acertado = true;
                    }
                    else
                    {
                        string pista = propuesta < claveSecreta ? "más alto" : "más bajo";
                        Console.WriteLine($"Pista: El número es {pista}.");
                    }
                }
                else
                {
                    Console.WriteLine("Entrada no válida. Ingresa un número entero.");
                }

            } while (!acertado);
        }
    }
}

Etiquetas: Python JavaScript CSharp Logic GameDevelopment

Publicado el 7-20 07:12