Menu
Coddy logo textTech

Финальное взаимодействие

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

challenge icon

Задание

Легко

Поздравляем с созданием вашего виртуального питомца! На этом последнем этапе вы объедините все части воедино, симулируя полный сеанс взаимодействия с вашим питомцем. Именно здесь все ваши методы начинают работать в гармонии!

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

В файле main.rs вы прочитаете имя вашего питомца, а затем выполните последовательность взаимодействий:

  1. Создайте нового питомца с заданным именем
  2. Отобразите начальный отчет о состоянии (status report)
  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.

Это финальное испытание демонстрирует созданную вами полную систему Virtual Pet — полностью инкапсулированный модуль с приватными полями, геттерами, сеттерами и методами, которые работают вместе для создания интерактивного опыта!

Попробуйте сами

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