Menu
Coddy logo textTech

Brincando com o Pet

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

challenge icon

Desafio

Fácil

Seu animal de estimação está alimentado e feliz — agora vamos dar a ele um pouco de exercício! Nesta etapa, você adicionará um método play que permite interagir com seu companheiro virtual.

Brincar com seu animal de estimação deve custar energia, mas também deixá-lo com mais fome. Quando seu animal brinca, sua energy diminui em 20 e sua hunger aumenta em 15. No entanto, a energia nunca deve cair abaixo de 0, e a fome nunca deve exceder 100.

Você também precisará de um método getter energy para verificar o quão cansado seu animal de estimação está após a brincadeira.

Em seu main.rs, leia o nome do animal de estimação junto com os valores iniciais de energia e fome. Depois de configurar seu animal de estimação, chame play uma vez e exiba os níveis de energia e fome.

O método play deve imprimir uma mensagem mostrando que seu animal de estimação se divertiu:

{name} had fun playing!

Então, seu arquivo principal deve exibir as estatísticas:

Energy: {energy_level}
Hunger: {hunger_level}

Por exemplo, se a entrada for:

Buddy
50
30

A saída deve ser:

Buddy had fun playing!
Energy: 30
Hunger: 45

Se a energia começar em 10, brincar a levaria para 0 (não negativa). Se a fome começar em 90, brincar a limitaria em 100.

Você precisará adicionar um método set_energy junto com seu set_hunger existente para inicializar ambos os valores para teste.

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