和宠物玩耍
本课属于 Coddy Rust 学习旅程的“面向对象编程”单元。第 21 课,共 61 课。
挑战
简单你的宠物吃饱了,也很开心:现在让我们带它锻炼一下吧!在这一步中,你将添加一个 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 在线编译器