Menu
Coddy logo textTech

Statusbericht

Teil des Abschnitts Objektorientierte Programmierung 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, über sein Befinden zu berichten. In diesem Schritt fügst du eine status-Methode hinzu, die einen vollständigen Überblick über den aktuellen Zustand deines Haustiers liefert.

Der Statusbericht sollte den Zustand deines Haustiers anhand seiner Energie- und Hungerwerte beschreiben. Dein Haustier kann je nachdem, wie gut du dich um es gekümmert hast, verschiedene Stimmungen haben:

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

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

Der Statusbericht sollte genau diesem Format entsprechen:

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

Lies in deiner main.rs den Namen, den Energie- und den Hungerwert des Haustiers ein, richte dein Haustier mit diesen Werten ein und rufe anschließend die status-Methode auf, um den Bericht anzuzeigen.

Wenn beispielsweise folgende Eingabe erfolgt:

Buddy
70
30

Die Ausgabe sollte sein:

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

Und wenn folgende Eingabe erfolgt:

Max
40
60

Die Ausgabe sollte sein:

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

Mit dieser Methode kannst du jederzeit schnell das Wohlbefinden deines Haustiers überprüfen!

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 Objektorientierte Programmierung

Übe selbstständig: Online-Rust-Compiler