Menu
Coddy logo textTech

Relatório de Status

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

challenge icon

Desafio

Fácil

Seu animal de estimação virtual está progredindo bem! Agora vamos dar a ele a capacidade de relatar como está se sentindo. Nesta etapa, você adicionará um método status que fornece uma visão geral completa do estado atual do seu animal de estimação.

O relatório de status deve descrever a condição do seu animal de estimação com base em seus níveis de energia e fome. Seu animal de estimação pode estar em diferentes humores, dependendo de quão bem você tem cuidado dele:

  • Se a energia for 50 ou superior E a fome for 50 ou inferior, seu animal de estimação está happy
  • Caso contrário, seu animal de estimação está tired

Adicione um método status ao seu Pet que receba &self e imprima um relatório de status completo mostrando o nome, energia, fome e humor do animal de estimação.

O relatório de status deve seguir este formato exato:

--- Status Report ---
Name: {name}
Energy: {energy}
Hunger: {hunger}
Mood: {mood}

No seu main.rs, leia o nome, a energia e os valores de fome do animal de estimação, configure seu animal de estimação com esses valores e, em seguida, chame o método status para exibir o relatório.

Por exemplo, se a entrada for:

Buddy
70
30

A saída deve ser:

--- Status Report ---
Name: Buddy
Energy: 70
Hunger: 30
Mood: happy

E se a entrada for:

Max
40
60

A saída deve ser:

--- Status Report ---
Name: Max
Energy: 40
Hunger: 60
Mood: tired

Este método oferece uma maneira rápida de verificar o bem-estar do seu animal de estimação a qualquer momento!

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.play();

    println!("Energy: {}", my_pet.energy());
    println!("Hunger: {}", my_pet.hunger());
}

Todas as lições de Object Oriented Programming