Menu
Coddy logo textTech

Reporte de estado

Parte de la sección Programación Orientada a Objetos del Journey de Rust de Coddy. Lección 22 de 61.

challenge icon

Desafío

Fácil

¡Tu mascota virtual avanza muy bien! Ahora vamos a darle la capacidad de informar sobre cómo se siente. En este paso, añadirás un método status que proporciona una descripción completa del estado actual de tu mascota.

El informe de estado debe describir la condición de tu mascota según sus niveles de energía y hambre. Tu mascota puede estar de distintos ánimos dependiendo de lo bien que la hayas cuidado:

  • Si la energía es 50 o superior Y el hambre es 50 o inferior, tu mascota está feliz
  • De lo contrario, tu mascota está cansada

Añade un método status a tu Pet que reciba &self e imprima un informe de estado completo que muestre el nombre, la energía, el hambre y el estado de ánimo de la mascota.

El informe de estado debe seguir este formato exacto:

--- Status Report ---
Name: {name}
Energy: {energy}
Hunger: {hunger}
Mood: {mood}

En tu main.rs, lee el nombre, la energía y los valores de hambre de la mascota, configura tu mascota con esos valores y, después, llama al método status para mostrar el informe.

Por ejemplo, si la entrada es:

Buddy
70
30

La salida debe ser:

--- Status Report ---
Name: Buddy
Energy: 70
Hunger: 30
Mood: happy

Y si la entrada es:

Max
40
60

La salida debe ser:

--- Status Report ---
Name: Max
Energy: 40
Hunger: 60
Mood: tired

¡Este método te ofrece una forma rápida de comprobar el bienestar de tu mascota en cualquier momento!

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 Programación Orientada a Objetos

Practica por tu cuenta: Compilador de Rust online