Menu
Coddy logo textTech

Relatório de Status

Parte da seção Programação Orientada a Objetos 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 informar como está se sentindo. Nesta etapa, você adicionará um método status que fornece uma visão completa do estado atual do seu animal.

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

  • Se a energia for 50 ou mais E a fome for 50 ou menos, seu animal estará feliz
  • Caso contrário, seu animal estará cansado

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

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

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

Em seu main.rs, leia o nome, os valores de energia e de fome do animal, configure seu animal 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 deverá ser:

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

E se a entrada for:

Max
40
60

A saída deverá ser:

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

Esse método oferece uma maneira rápida de verificar o bem-estar do seu animal 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 Programação Orientada a Objetos

Pratique por conta própria: Compilador de Rust online