Menu
Coddy logo textTech

Mit dem Haustier spielen

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

challenge icon

Aufgabe

Einfach

Dein Haustier ist gefüttert und glücklich – jetzt lass uns für etwas Bewegung sorgen! In diesem Schritt wirst du eine play-Methode hinzufügen, mit der du mit deinem virtuellen Begleiter interagieren kannst.

Das Spielen mit deinem Haustier sollte Energie kosten, es aber auch hungriger machen. Wenn dein Haustier spielt, verringert sich seine energy um 20 und sein hunger erhöht sich um 15. Die Energie sollte jedoch niemals unter 0 fallen und der Hunger sollte niemals 100 überschreiten.

Du wirst auch eine energy-Getter-Methode benötigen, um zu überprüfen, wie müde dein Haustier nach der Spielzeit ist.

Lies in deiner main.rs den Namen des Haustiers zusammen mit den initialen Energie- und Hungerwerten ein. Nachdem du dein Haustier eingerichtet hast, rufe play einmal auf und zeige sowohl das Energie- als auch das Hungerniveau an.

Die play-Methode sollte eine Nachricht ausgeben, die zeigt, dass dein Haustier Spaß hatte:

{name} had fun playing!

Dann sollte deine Hauptdatei die Statistiken anzeigen:

Energy: {energy_level}
Hunger: {hunger_level}

Wenn die Eingabe zum Beispiel wie folgt aussieht:

Buddy
50
30

Sollte die Ausgabe wie folgt lauten:

Buddy had fun playing!
Energy: 30
Hunger: 45

Wenn die Energie bei 10 beginnt, würde das Spielen sie auf 0 bringen (nicht negativ). Wenn der Hunger bei 90 beginnt, würde das Spielen ihn bei 100 deckeln.

Du musst eine set_energy-Methode neben deiner bestehenden set_hunger hinzufügen, um beide Werte für Tests zu initialisieren.

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