Menu
Coddy logo textTech

상태 보고

Coddy Rust 여정의 Object Oriented Programming 섹션에 포함된 레슨 — 61개 중 22번째.

challenge icon

챌린지

쉬움

가상 반려동물이 잘 자라고 있네요! 이제 반려동물이 자신의 기분을 보고할 수 있는 기능을 추가해 봅시다. 이번 단계에서는 반려동물의 현재 상태에 대한 전체적인 개요를 제공하는 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());
}

Object Oriented Programming의 모든 레슨