Menu
Coddy logo textTech

Brincando com o Pet

Parte da seção Programação Orientada a Objetos 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 consumir 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 ficar 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 está após a hora de brincar.

Em seu main.rs, leia o nome do animal junto com os valores iniciais de energia e fome. Depois de configurar seu animal, 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 se divertiu:

{name} had fun playing!

Em seguida, 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 deverá ser:

Buddy had fun playing!
Energy: 30
Hunger: 45

Se a energia começar em 10, brincar fará com que ela chegue a 0 (não a um valor negativo). Se a fome começar em 90, brincar fará com que ela seja limitada a 100.

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

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