Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

تقرير الحالة

جزء من قسم Object Oriented Programming في رحلة Rust على Coddy — الدرس 22 من 61.

challenge icon

التحدي

سهل

حيوانك الأليف الافتراضي يتقدم بشكل جيد! الآن دعنا نمنحه القدرة على الإبلاغ عن شعوره. في هذه الخطوة، ستضيف طريقة status توفر نظرة عامة كاملة على الحالة الحالية لحيوانك الأليف.

يجب أن يصف تقرير الحالة حالة حيوانك الأليف بناءً على مستويات الطاقة والجوع لديه. يمكن أن يكون حيوانك الأليف في حالات مزاجية مختلفة اعتمادًا على مدى اهتمامك به:

  • إذا كانت الطاقة 50 أو أكثر والجوع 50 أو أقل، فإن حيوانك الأليف happy
  • خلاف ذلك، يكون حيوانك الأليف tired

أضف طريقة 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());
}

جميع دروس Object Oriented Programming