Menu
Coddy logo textTech

반려동물과 놀아주기

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

challenge icon

챌린지

쉬움

반려동물이 배불리 먹고 행복해졌습니다. 이제 운동을 시켜줄 차례입니다! 이번 단계에서는 가상 반려동물과 상호작용할 수 있는 play 메서드를 추가해 보겠습니다.

반려동물과 놀아주면 에너지가 소모되지만 배고픔도 늘어납니다. 반려동물이 놀 때, energy20만큼 감소하고 hunger15만큼 증가합니다. 단, 에너지는 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());
}

Object Oriented Programming의 모든 레슨