Menu
Coddy logo textTech

Отчет о состоянии

Часть раздела Object Oriented Programming путешествия по Rust на Coddy — урок 22 из 61.

challenge icon

Задание

Легко

Ваш виртуальный питомец отлично развивается! Теперь давайте дадим ему возможность сообщать о том, как он себя чувствует. На этом этапе вы добавите метод status, который предоставляет полный обзор текущего состояния вашего питомца.

Отчет о состоянии должен описывать кондицию вашего питомца на основе уровней его энергии и голода. Ваш питомец может находиться в разном настроении в зависимости от того, насколько хорошо вы о нем заботитетесь:

  • Если энергия 50 или выше И голод 50 или ниже, ваш питомец — happy
  • В противном случае ваш питомец — tired

Добавьте метод status в вашу структуру Pet, который принимает &self и выводит полный отчет о состоянии, показывающий имя питомца, энергию, голод и настроение.

Отчет о состоянии должен соответствовать именно этому формату:

--- 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