Menu
Coddy logo textTech

דוח מצב

חלק מהיחידה תכנות מונחה עצמים במסלול ה-Rust של Coddy. שיעור 22 מתוך 61.

challenge icon

אתגר

קל

חיית המחמד הווירטואלית שלך מתקדמת יפה! עכשיו נוסיף לה את היכולת לדווח איך היא מרגישה. בשלב הזה, תוסיף מתודת status שמספקת סקירה מלאה של המצב הנוכחי של חיית המחמד שלך.

דוח המצב צריך לתאר את מצבה של חיית המחמד שלך לפי רמות האנרגיה והרעב שלה. חיית המחמד שלך יכולה להיות במצבי רוח שונים, בהתאם למידת הטיפול שהענקת לה:

  • אם רמת האנרגיה היא 50 ומעלה וגם רמת הרעב היא 50 ומטה, חיית המחמד שלך שמחה
  • אחרת, חיית המחמד שלך עייפה

הוסף מתודת status ל-Pet שלך, שמקבלת &self ומדפיסה דוח מצב מלא הכולל את שם חיית המחמד, רמת האנרגיה, רמת הרעב ומצב הרוח שלה.

דוח המצב צריך להיות בדיוק בפורמט הבא:

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

בקובץ main.rs שלך, קרא את שם חיית המחמד, את רמות האנרגיה והרעב שלה, הגדר את חיית המחמד עם הערכים האלה, ואז קרא למתודת status כדי להציג את הדוח.

לדוגמה, אם הקלט הוא:

Buddy
70
30

הפלט צריך להיות:

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

ואם הקלט הוא:

Max
40
60

הפלט צריך להיות:

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

המתודה הזו מאפשרת לך לבדוק במהירות מה שלומה של חיית המחמד שלך בכל עת!

נסו בעצמכם

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

כל השיעורים ביחידה תכנות מונחה עצמים

תרגלו בעצמכם: קומפיילר Rust אונליין