Menu
Coddy logo textTech

Interação Final

Parte da seção Object Oriented Programming do Journey de Rust da Coddy — lição 23 de 61.

challenge icon

Desafio

Fácil

Parabéns por construir seu Animal de Estimação Virtual! Nesta etapa final, você reunirá tudo simulando uma sessão completa de interação com seu pet. É aqui que todos os seus métodos trabalham em harmonia!

Seu módulo de pet já tem tudo o que precisa: alimentação, brincadeira e relatório de status. Agora você criará uma simulação que mostra um dia na vida do seu companheiro virtual.

No seu main.rs, você lerá o nome do seu pet e, em seguida, realizará uma sequência de interações:

  1. Criar um novo pet com o nome fornecido
  2. Exibir o relatório de status inicial
  3. Brincar com seu pet duas vezes
  4. Alimentar seu pet uma vez
  5. Exibir o relatório de status final

Entre os dois relatórios de status, imprima uma linha separadora para mostrar a transição:

--- After Activities ---

Por exemplo, se a entrada for:

Buddy

A saída deve ser:

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

Lembre-se de como as estatísticas mudam: brincar custa 20 de energia e adiciona 15 de fome a cada vez, enquanto alimentar reduz a fome em 30. Após duas sessões de brincadeira e uma alimentação, a energia do seu pet cai de 100 para 60, e a fome vai de 0 para 30 e depois volta para 0.

Este desafio final demonstra o sistema completo de Animal de Estimação Virtual que você construiu — um módulo totalmente encapsulado com campos privados, getters, setters e métodos que trabalham juntos para criar uma experiência interativa!

Experimente você mesmo

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

Todas as lições de Object Oriented Programming