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

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

جزء من قسم البرمجة كائنية التوجه في رحلة Rust على Coddy. الدرس 21 من 61.

challenge icon

التحدي

سهل

تم إطعام حيوانك الأليف وأصبح سعيدًا: والآن لنمنحه بعض التمرين! في هذه الخطوة، ستضيف طريقة 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());
}

جميع دروس البرمجة كائنية التوجه

تدرّب بنفسك: مترجم Rust عبر الإنترنت