Menu
CoddyTech

Chơi với thú cưng

Thuộc phần Lập trình hướng đối tượng trong hành trình Rust của Coddy. Bài học 21 trên 61.

challenge icon

Thử thách

Dễ

Thú cưng của bạn đã được cho ăn và đang vui vẻ: giờ hãy cho nó vận động! Ở bước này, bạn sẽ thêm phương thức play để tương tác với người bạn đồng hành ảo của mình.

Chơi với thú cưng sẽ tiêu hao năng lượng nhưng cũng khiến nó đói hơn. Khi thú cưng chơi, energy giảm đi 20 và hunger tăng thêm 15. Tuy nhiên, năng lượng không bao giờ được thấp hơn 0, và cơn đói không bao giờ được vượt quá 100.

Bạn cũng cần một phương thức getter energy để kiểm tra thú cưng mệt đến mức nào sau khi chơi.

Trong main.rs, hãy đọc tên thú cưng cùng với giá trị năng lượng và cơn đói ban đầu. Sau khi thiết lập thú cưng, hãy gọi play một lần và hiển thị cả mức năng lượng lẫn cơn đói.

Phương thức play sẽ in ra thông báo cho biết thú cưng của bạn đã vui vẻ:

{name} had fun playing!

Sau đó, tệp chính của bạn sẽ hiển thị các chỉ số:

Energy: {energy_level}
Hunger: {hunger_level}

Ví dụ, nếu đầu vào là:

Buddy
50
30

Đầu ra sẽ là:

Buddy had fun playing!
Energy: 30
Hunger: 45

Nếu năng lượng ban đầu là 10, chơi sẽ khiến năng lượng giảm xuống 0 (không âm). Nếu cơn đói ban đầu là 90, chơi sẽ giới hạn cơn đói ở mức 100.

Bạn cần thêm phương thức set_energy bên cạnh set_hunger hiện có để khởi tạo cả hai giá trị khi kiểm thử.

Tự làm thử

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());
}

Tất cả bài học trong Lập trình hướng đối tượng

Tự luyện tập: Trình biên dịch Rust online