Menu
Coddy logo textTech

Abschließende Interaktion

Teil des Abschnitts Objektorientierte Programmierung 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 führst du alles zusammen, indem du eine vollständige Interaktion mit deinem Haustier simulierst, sodass jede von dir geschriebene Methode gleichzeitig funktioniert.

Dein Modul pet.rs wird dir vollständig vorgegeben: new, die Getter, set_energy, set_hunger, feed, play und status. Du schreibst nur main.rs.

Du erhältst drei Eingaben, dieselben drei wie in den vorherigen Schritten:

  1. Der Name des Haustiers
  2. Die Energie, mit der das Haustier startet
  3. Der Hunger, mit dem das Haustier startet

Führe in main.rs diese Abfolge aus:

  1. Erstelle das Haustier mit dem angegebenen Namen und setze anschließend seine Energie und seinen Hunger anhand der Eingabe
  2. Gib den Statusbericht aus
  3. Spiele zweimal mit deinem Haustier
  4. Füttere dein Haustier einmal
  5. Gib die Trennzeile --- After Activities --- aus
  6. Gib den Statusbericht erneut aus

Denke daran, wie sich die Werte ändern: Beim Spielen werden 20 Energie abgezogen und der Hunger um 15 erhöht, beim Füttern werden dem Hunger 30 abgezogen, die Energie sinkt nie unter 0 und der Hunger steigt nie über 100. Die Stimmung ist happy, wenn die Energie 50 oder mehr und der Hunger 50 oder weniger beträgt, andernfalls ist sie tired. Daher kann ein Haustier die Sitzung glücklich beginnen und müde beenden.

Zum Beispiel mit den Eingaben Luna, 50 und 50:

--- Status Report ---
Name: Luna
Energy: 50
Hunger: 50
Mood: happy
Luna had fun playing!
Luna had fun playing!
Luna enjoyed the meal!
--- After Activities ---
--- Status Report ---
Name: Luna
Energy: 10
Hunger: 50
Mood: tired

Diese letzte Herausforderung zeigt das vollständige virtuelle Haustiersystem, das du aufgebaut hast: ein Modul mit privaten Feldern, Gettern, Settern und Methoden, die als eine interaktive Sitzung zusammenarbeiten.

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");

    // TODO: erstelle das Pet und setze seine energy und hunger aus der Eingabe

    // TODO: print the first status report

    // TODO: spiele zweimal, dann füttere einmal

    // TODO: print the separator "--- After Activities ---"

    // TODO: print the final status report
}

Alle Lektionen in Objektorientierte Programmierung

Übe selbstständig: Online-Rust-Compiler