اللعب مع الحيوان الأليف
جزء من قسم البرمجة كائنية التوجه في رحلة Rust على Coddy. الدرس 21 من 61.
التحدي
سهلتم إطعام حيوانك الأليف وأصبح سعيدًا: والآن لنمنحه بعض التمرين! في هذه الخطوة، ستضيف طريقة play تتيح لك التفاعل مع رفيقك الافتراضي.
ينبغي أن تستهلك ملاعبة حيوانك الأليف بعضًا من energy، لكنها تجعله أكثر جوعًا أيضًا. عندما يلعب حيوانك الأليف، تنخفض قيمة energy بمقدار 20 وتزداد قيمة hunger بمقدار 15. ومع ذلك، يجب ألا تنخفض قيمة energy عن 0، ويجب ألا تتجاوز قيمة hunger 100.
ستحتاج أيضًا إلى طريقة getter باسم energy للتحقق من مدى تعب حيوانك الأليف بعد وقت اللعب.
في ملف main.rs، اقرأ اسم الحيوان الأليف إلى جانب قيمتي energy وhunger الابتدائيتين. بعد إعداد حيوانك الأليف، استدعِ play مرة واحدة واعرض مستويي energy وhunger.
يجب أن تطبع طريقة play رسالة توضّح أن حيوانك الأليف had fun:
{name} had fun playing!بعد ذلك، يجب أن يعرض ملف main الإحصاءات:
Energy: {energy_level}
Hunger: {hunger_level}على سبيل المثال، إذا كان الإدخال هو:
Buddy
50
30فيجب أن يكون الناتج:
Buddy had fun playing!
Energy: 30
Hunger: 45إذا بدأت energy عند 10، فستؤدي الملاعبة إلى جعلها 0 (وليس قيمة سالبة). وإذا بدأت hunger عند 90، فستتوقف عند 100.
ستحتاج إلى إضافة طريقة set_energy إلى جانب set_hunger الموجودة لديك لتهيئة كلتا القيمتين لأغراض الاختبار.
جرّب بنفسك
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مشروع: حيوان أليف افتراضي
تعريف الحيوان الأليفإطعام الحيوان الأليف2التغليف والوحدات البرمجية
أساسيات الوحدات البرمجيةالكلمة المفتاحية Publicالحقول الخاصةدوال Gettersدوال Settersمراجعة - الخزانة الآمنة5الأنواع العامة (Generics)
الـ Structs العامةالـ Methods العامةأنواع عامة متعددةالـ Functions العامةمراجعة - Coordinate Point3التعدادات المتقدمة (Advanced Enums)
التعدادات مع البياناتالأساليب (Methods) في التعداداتمطابقة حالات البياناتمراجعة التعداد Optionملخص - التعداد Shape6تعريف الـ Traits
ما هي الـ Trait؟تنفيذ الـ Traitsالتنفيذات الافتراضيةتجاوز التنفيذات الافتراضيةالـ Traits مع المعاملاتملخص - مشغل الوسائطتدرّب بنفسك: مترجم Rust عبر الإنترنت