상태 보고
Coddy Rust 여정의 Object Oriented Programming 섹션에 포함된 레슨 — 61개 중 22번째.
챌린지
쉬움가상 반려동물이 잘 자라고 있네요! 이제 반려동물이 자신의 기분을 보고할 수 있는 기능을 추가해 봅시다. 이번 단계에서는 반려동물의 현재 상태에 대한 전체적인 개요를 제공하는 status 메서드를 추가할 것입니다.
상태 보고서는 에너지와 허기 수준에 따라 반려동물의 상태를 설명해야 합니다. 반려동물을 얼마나 잘 돌봤느냐에 따라 기분이 달라질 수 있습니다:
- 에너지가
50이상이고 허기가50이하이면, 반려동물은 happy 상태입니다. - 그렇지 않으면, 반려동물은 tired 상태입니다.
Pet 구조체에 &self를 매개변수로 받고 반려동물의 이름, 에너지, 허기, 기분을 보여주는 전체 상태 보고서를 출력하는 status 메서드를 추가하세요.
상태 보고서는 반드시 다음 형식을 따라야 합니다:
--- Status Report ---
Name: {name}
Energy: {energy}
Hunger: {hunger}
Mood: {mood}main.rs에서 반려동물의 이름, 에너지, 허기 값을 읽어 해당 값으로 반려동물을 설정한 다음, status 메서드를 호출하여 보고서를 표시하세요.
예를 들어, 입력이 다음과 같다면:
Buddy
70
30출력은 다음과 같아야 합니다:
--- Status Report ---
Name: Buddy
Energy: 70
Hunger: 30
Mood: happy그리고 입력이 다음과 같다면:
Max
40
60출력은 다음과 같아야 합니다:
--- Status Report ---
Name: Max
Energy: 40
Hunger: 60
Mood: tired이 메서드를 통해 언제든지 반려동물의 상태를 빠르게 확인할 수 있습니다!
직접 해보기
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());
}