דוח מצב
חלק מהיחידה תכנות מונחה עצמים במסלול ה-Rust של Coddy. שיעור 22 מתוך 61.
אתגר
קלחיית המחמד הווירטואלית שלך מתקדמת יפה! עכשיו נוסיף לה את היכולת לדווח איך היא מרגישה. בשלב הזה, תוסיף מתודת 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());
}
כל השיעורים ביחידה תכנות מונחה עצמים
1מתודות והתנהגות
מבוא לבלוקי מימושהפרמטר selfמתודות ניתנות לשינויפונקציות משויכותבלוקי מימוש מרוביםשרשור מתודותסיכום – פעולות מלבן4פרויקט: חיית מחמד וירטואלית
הגדרת חיית המחמדהאכלת חיית המחמדתרגלו בעצמכם: קומפיילר Rust אונליין