Menu
Coddy logo textTech

Abschließende Interaktion

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

challenge icon

Aufgabe

Einfach

Herzlichen Glückwunsch zum Bau deines virtuellen Haustiers! In diesem letzten Schritt wirst du alles zusammenführen, indem du eine vollständige Interaktionssitzung mit deinem Haustier simulierst. Hier arbeiten alle deine Methoden harmonisch zusammen!

Dein Haustier-Modul hat bereits alles, was es braucht: Füttern, Spielen und Statusberichte. Jetzt wirst du eine Simulation erstellen, die einen Tag im Leben deines virtuellen Begleiters zeigt.

In deiner main.rs wirst du den Namen deines Haustiers einlesen und dann eine Sequenz von Interaktionen durchführen:

  1. Erstelle ein neues Haustier mit dem angegebenen Namen
  2. Zeige den anfänglichen Statusbericht an
  3. Spiele zweimal mit deinem Haustier
  4. Füttere dein Haustier einmal
  5. Zeige den finalen Statusbericht an

Drucke zwischen den beiden Statusberichten eine Trennlinie, um den Übergang anzuzeigen:

--- After Activities ---

Wenn die Eingabe zum Beispiel wie folgt lautet:

Buddy

Sollte die Ausgabe so aussehen:

--- Status Report ---
Name: Buddy
Energy: 100
Hunger: 0
Mood: happy
Buddy had fun playing!
Buddy had fun playing!
Buddy enjoyed the meal!
--- After Activities ---
--- Status Report ---
Name: Buddy
Energy: 60
Hunger: 0
Mood: happy

Erinnere dich daran, wie sich die Werte ändern: Spielen kostet jedes Mal 20 Energie und fügt 15 Hunger hinzu, während Füttern den Hunger um 30 reduziert. Nach zwei Spielsitzungen und einer Fütterung sinkt die Energie deines Haustiers von 100 auf 60, und der Hunger steigt von 0 auf 30 und sinkt dann wieder auf 0.

Diese letzte Herausforderung präsentiert das komplette virtuelle Haustiersystem, das du gebaut hast – ein vollständig gekapseltes Modul mit privaten Feldern, Gettern, Settern und Methoden, die zusammenarbeiten, um ein interaktives Erlebnis zu schaffen!

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

Alle Lektionen in Object Oriented Programming