Menu
Coddy logo textTech

최종 상호작용

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

challenge icon

챌린지

쉬움

가상 반려동물을 만드신 것을 축하드립니다! 이 마지막 단계에서는 반려동물과의 전체 상호작용 세션을 시뮬레이션하여 모든 것을 하나로 합쳐볼 것입니다. 여러분이 만든 모든 메서드들이 조화롭게 작동하는 단계입니다!

반려동물 모듈에는 이미 먹이 주기, 놀아주기, 상태 보고 등 필요한 모든 기능이 갖춰져 있습니다. 이제 가상 동반자의 하루 일과를 보여주는 시뮬레이션을 만들어 보겠습니다.

main.rs에서 반려동물의 이름을 입력받은 후, 다음과 같은 일련의 상호작용을 수행합니다:

  1. 입력받은 이름으로 새로운 반려동물을 생성합니다.
  2. 초기 상태 보고서를 표시합니다.
  3. 반려동물과 두 번 놀아줍니다.
  4. 반려동물에게 한 번 먹이를 줍니다.
  5. 최종 상태 보고서를 표시합니다.

두 상태 보고서 사이에 전환을 보여주는 구분선을 출력하세요:

--- After Activities ---

예를 들어, 입력값이 다음과 같다면:

Buddy

출력값은 다음과 같아야 합니다:

--- Status Report ---
Name: Buddy
Energy: 100
Hunger: 0
Mood: happy
Buddy had fun playing!
Buddy had fun playing!
Buddy enjoyed the meal!
--- After Activities ---
--- Status Report ---
Name: Buddy
Energy: 60
Hunger: 0
Mood: happy

상태 수치가 어떻게 변하는지 기억하세요: 놀아줄 때마다 에너지가 20 감소하고 허기가 15 증가하며, 먹이를 주면 허기가 30 감소합니다. 두 번의 놀이와 한 번의 식사 후, 반려동물의 에너지는 100에서 60으로 떨어지고, 허기는 0에서 30이 되었다가 다시 0이 됩니다.

이 마지막 챌린지는 여러분이 구축한 완전한 가상 반려동물 시스템을 보여줍니다. 비공개 필드, 게터(getters), 세터(setters), 그리고 상호작용 경험을 만들기 위해 함께 작동하는 메서드들을 갖춘 완벽하게 캡슐화된 모듈입니다!

직접 해보기

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

Object Oriented Programming의 모든 레슨