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

اللعب مع الحيوان الأليف

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

challenge icon

التحدي

سهل

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

اللعب مع حيوانك الأليف يجب أن يستهلك طاقة ولكنه يجعله أيضاً أكثر جوعاً. عندما يلعب حيوانك الأليف، تنخفض energy لديه بمقدار 20 وتزداد hunger بمقدار 15. ومع ذلك، يجب ألا تنخفض الطاقة أبداً عن 0، ولا يجب أن يتجاوز الجوع أبداً 100.

ستحتاج أيضاً إلى طريقة لجلب الطاقة energy للتحقق من مدى تعب حيوانك الأليف بعد وقت اللعب.

في ملف main.rs الخاص بك، اقرأ اسم الحيوان الأليف مع قيم الطاقة والجوع الأولية. بعد إعداد حيوانك الأليف، استدعِ play مرة واحدة واعرض مستويات الطاقة والجوع.

يجب أن تطبع طريقة اللعب رسالة توضح أن حيوانك الأليف استمتع باللعب:

{name} had fun playing!

ثم يجب أن يعرض ملفك الرئيسي الإحصائيات:

Energy: {energy_level}
Hunger: {hunger_level}

على سبيل المثال، إذا كان الإدخال هو:

Buddy
50
30

يجب أن يكون المخرج:

Buddy had fun playing!
Energy: 30
Hunger: 45

إذا بدأت الطاقة عند 10، فإن اللعب سيجعلها 0 (وليس قيمة سالبة). وإذا بدأ الجوع عند 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());
}

جميع دروس Object Oriented Programming