Menu
Coddy logo textTech

반려동물과 놀아주기

Coddy Rust 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨. 61개 중 21번째.

challenge icon

챌린지

쉬움

반려동물에게 먹이를 주어 행복하게 만들었으니, 이제 운동을 시켜 봅시다! 이 단계에서는 가상 반려동물과 상호작용할 수 있도록 play 메서드를 추가합니다.

반려동물과 놀면 에너지가 소모되지만 배고픔은 증가해야 합니다. 반려동물이 놀면 energy20만큼 감소하고 hunger15만큼 증가합니다. 단, 에너지는 절대로 0 미만으로 내려가서는 안 되며, 배고픔은 절대로 100을 초과해서는 안 됩니다.

놀이가 끝난 후 반려동물이 얼마나 지쳤는지 확인할 수 있도록 energy getter 메서드도 추가해야 합니다.

main.rs에서 반려동물의 이름과 초기 에너지 및 배고픔 값을 읽습니다. 반려동물을 설정한 후 play를 한 번 호출하고 에너지와 배고픔 수치를 모두 출력합니다.

play 메서드는 반려동물이 즐겁게 놀았다는 메시지를 출력해야 합니다.

{name} had fun playing!

그런 다음 main 파일에서 상태를 출력해야 합니다.

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 컴파일러