Menu
Coddy logo textTech

Raport o stanie

Część sekcji Programowanie obiektowe ścieżki Rust w Coddy. Lekcja 22 z 61.

challenge icon

Wyzwanie

Łatwy

Twój wirtualny pupil ma się coraz lepiej! Teraz dodajmy mu możliwość informowania o tym, jak się czuje. W tym kroku dodasz metodę status, która przedstawia pełny przegląd aktualnego stanu pupila.

Raport o stanie powinien opisywać kondycję pupila na podstawie poziomu energii i głodu. Pupil może być w różnym nastroju, w zależności od tego, jak dobrze się nim opiekujesz:

  • Jeśli energia wynosi 50 lub więcej ORAZ głód wynosi 50 lub mniej, pupil jest szczęśliwy
  • W przeciwnym razie pupil jest zmęczony

Dodaj do Pet metodę status, która przyjmuje &self i wyświetla pełny raport o stanie, zawierający imię pupila, poziom energii, głód i nastrój.

Raport o stanie powinien mieć dokładnie następujący format:

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

W pliku main.rs odczytaj imię pupila, poziom energii i głód, skonfiguruj pupila przy użyciu tych wartości, a następnie wywołaj metodę status, aby wyświetlić raport.

Na przykład, jeśli dane wejściowe to:

Buddy
70
30

Wynik powinien być następujący:

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

A jeśli dane wejściowe to:

Max
40
60

Wynik powinien być następujący:

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

Ta metoda pozwala szybko sprawdzić samopoczucie pupila w dowolnym momencie!

Spróbuj swoich sił

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());
}

Wszystkie lekcje w sekcji Programowanie obiektowe

Poćwicz samodzielnie: Kompilator Rust online