Menu
CoddyTech

和宠物玩耍

本课属于 Coddy Rust 学习旅程的“面向对象编程”单元。第 21 课,共 61 课。

challenge icon

挑战

简单

你的宠物吃饱了,也很开心:现在让我们带它锻炼一下吧!在这一步中,你将添加一个 play 方法,让你可以和虚拟伙伴互动。

和宠物玩耍会消耗体力,也会让它更饿。宠物玩耍时,它的 energy 会减少 20,hunger 会增加 15。不过,体力不能低于 0,饥饿值也不能超过 100。

你还需要添加一个 energy getter 方法,以便在玩耍后查看宠物有多累。

在你的 main.rs 中,读取宠物的名字以及初始体力和饥饿值。设置好宠物后,调用一次 play,并显示体力和饥饿值。

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_hunger 方法旁边添加一个 set_energy 方法,以便在测试时初始化这两个值。

亲手试试

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 在线编译器