Menu
Coddy logo textTech

Statusbericht

Teil des Abschnitts Object Oriented Programming der Rust-Journey von Coddy — Lektion 22 von 61.

challenge icon

Aufgabe

Einfach

Dein virtuelles Haustier entwickelt sich prächtig! Jetzt geben wir ihm die Fähigkeit, darüber zu berichten, wie es sich fühlt. In diesem Schritt wirst du eine status-Methode hinzufügen, die einen vollständigen Überblick über den aktuellen Zustand deines Haustiers gibt.

Der Statusbericht soll den Zustand deines Haustiers basierend auf seinem Energie- und Hungerlevel beschreiben. Dein Haustier kann in verschiedenen Stimmungen sein, je nachdem, wie gut du dich um es gekümmert hast:

  • Wenn die Energie 50 oder höher ist UND der Hunger 50 oder niedriger ist, ist dein Haustier happy
  • Andernfalls ist dein Haustier tired

Füge deiner Pet-Struktur eine status-Methode hinzu, die &self entgegennimmt und einen vollständigen Statusbericht ausgibt, der den Namen, die Energie, den Hunger und die Stimmung des Haustiers anzeigt.

Der Statusbericht sollte genau diesem Format folgen:

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

Lies in deiner main.rs den Namen, die Energie- und die Hungerwerte des Haustiers ein, konfiguriere dein Haustier mit diesen Werten und rufe dann die status-Methode auf, um den Bericht anzuzeigen.

Wenn die Eingabe zum Beispiel wie folgt aussieht:

Buddy
70
30

Sollte die Ausgabe so aussehen:

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

Und wenn die Eingabe wie folgt aussieht:

Max
40
60

Sollte die Ausgabe so aussehen:

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

Diese Methode bietet dir eine schnelle Möglichkeit, jederzeit nach dem Wohlbefinden deines Haustiers zu sehen!

Probier es selbst

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

Alle Lektionen in Object Oriented Programming