Menu
Coddy logo textTech

Jugar con la mascota

Parte de la sección Object Oriented Programming del Journey de Rust de Coddy — lección 21 de 61.

challenge icon

Desafío

Fácil

Tu mascota está alimentada y feliz—¡ahora vamos a darle algo de ejercicio! En este paso, añadirás un método play que te permitirá interactuar con tu compañero virtual.

Jugar con tu mascota debería costar energía pero también darle más hambre. Cuando tu mascota juega, su energy disminuye en 20 y su hunger aumenta en 15. Sin embargo, la energía nunca debe bajar de 0, y el hambre nunca debe exceder 100.

También necesitarás un método getter energy para comprobar qué tan cansada está tu mascota después de jugar.

En tu main.rs, lee el nombre de la mascota junto con los valores iniciales de energía y hambre. Después de configurar a tu mascota, llama a play una vez y muestra tanto los niveles de energía como los de hambre.

El método play debe imprimir un mensaje mostrando que tu mascota se divirtió:

{name} had fun playing!

Luego, tu archivo principal debe mostrar las estadísticas:

Energy: {energy_level}
Hunger: {hunger_level}

Por ejemplo, si la entrada es:

Buddy
50
30

La salida debería ser:

Buddy had fun playing!
Energy: 30
Hunger: 45

Si la energía comienza en 10, jugar la llevaría a 0 (no negativo). Si el hambre comienza en 90, jugar la limitaría a 100.

Necesitarás añadir un método set_energy junto con tu set_hunger existente para inicializar ambos valores para las pruebas.

Pruébalo tú mismo

mod pet;

use pet::Pet;

fn main() {
    let mut name = String::new();
    std::io::stdin().read_line(&mut name).expect("Failed to read line");
    let name = name.trim().to_string();

    let mut energy_input = String::new();
    std::io::stdin().read_line(&mut energy_input).expect("Failed to read line");
    let initial_energy: u32 = energy_input.trim().parse().expect("Failed to parse energy");

    let mut hunger_input = String::new();
    std::io::stdin().read_line(&mut hunger_input).expect("Failed to read line");
    let initial_hunger: u32 = hunger_input.trim().parse().expect("Failed to parse hunger");

    let mut my_pet = Pet::new(name);
    my_pet.set_energy(initial_energy);
    my_pet.set_hunger(initial_hunger);
    my_pet.play();

    println!("Energy: {}", my_pet.energy());
    println!("Hunger: {}", my_pet.hunger());
}

Todas las lecciones de Object Oriented Programming