אינטראקציה סופית
חלק מהיחידה תכנות מונחה עצמים במסלול ה-Rust של Coddy. שיעור 23 מתוך 61.
אתגר
קלכל הכבוד על בניית חיית המחמד הווירטואלית שלך! בשלב האחרון הזה נחבר את כל החלקים באמצעות הדמיה של מפגש אינטראקטיבי מלא עם חיית המחמד שלך, כך שכל המתודות שכתבת יעבדו יחד.
מודול pet.rs שלך כבר מוכן במלואו: new, פונקציות הגישה, set_energy, set_hunger, feed, play ו-status. עליך לכתוב רק את main.rs.
תקבל שלוש קלטים, אותם שלושה כמו בשלבים הקודמים:
- שם חיית המחמד
- רמת האנרגיה ההתחלתית של חיית המחמד
- רמת הרעב ההתחלתית של חיית המחמד
ב-main.rs, בצע את רצף הפעולות הבא:
- צור את חיית המחמד עם השם הנתון, ואז קבע את האנרגיה והרעב שלה לפי הקלט
- הצג את דוח המצב
- שחק עם חיית המחמד שלך פעמיים
- האכל את חיית המחמד שלך פעם אחת
- הדפס את שורת ההפרדה
--- After Activities --- - הצג שוב את דוח המצב
זכור כיצד הנתונים משתנים: משחק מפחית 20 נקודות אנרגיה ומוסיף 15 נקודות רעב, האכלה מפחיתה את הרעב ב-30, האנרגיה לעולם אינה יורדת מתחת ל-0 והרעב לעולם אינו עולה מעל 100. מצב הרוח הוא happy כשהאנרגיה היא 50 או יותר והרעב הוא 50 או פחות, ו-tired אחרת, כך שחיית מחמד יכולה להתחיל שמחה ולסיים את המפגש עייפה.
לדוגמה, עם הקלטים Luna, 50 ו-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האתגר האחרון הזה מציג את מערכת חיית המחמד הווירטואלית השלמה שבנית: מודול עם שדות פרטיים, פונקציות גישה, פונקציות הגדרה ומתודות שפועלים יחד כמפגש אינטראקטיבי אחד.
נסו בעצמכם
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: צרו את חיית המחמד והגדירו את רמות האנרגיה והרעב שלה לפי הקלט
// TODO: הדפיסו את דוח המצב הראשון
// TODO: שחקו פעמיים, ואז האכילו פעם אחת
// TODO: הדפיסו את המפריד "--- After Activities ---"
// TODO: הדפיסו את דוח המצב הסופי
}
כל השיעורים ביחידה תכנות מונחה עצמים
1מתודות והתנהגות
מבוא לבלוקי מימושהפרמטר selfמתודות ניתנות לשינויפונקציות משויכותבלוקי מימוש מרוביםשרשור מתודותסיכום – פעולות מלבן4פרויקט: חיית מחמד וירטואלית
הגדרת חיית המחמדהאכלת חיית המחמדתרגלו בעצמכם: קומפיילר Rust אונליין