Menu
Coddy logo textTech

Rapport d'état

Fait partie de la section Programmation Orientée Objet du Journey Rust de Coddy. Leçon 22 sur 61.

challenge icon

Défi

Facile

Votre animal virtuel avance bien ! Maintenant, donnons-lui la possibilité d’indiquer comment il se sent. Dans cette étape, vous allez ajouter une méthode status qui fournit un aperçu complet de l’état actuel de votre animal.

Le rapport d’état doit décrire la condition de votre animal en fonction de ses niveaux d’énergie et de faim. Votre animal peut avoir différentes humeurs selon la façon dont vous vous en êtes occupé :

  • Si l’énergie est supérieure ou égale à 50 ET que la faim est inférieure ou égale à 50, votre animal est happy
  • Sinon, votre animal est tired

Ajoutez une méthode status à votre Pet qui prend &self et affiche un rapport d’état complet indiquant le nom, l’énergie, la faim et l’humeur de l’animal.

Le rapport d’état doit respecter exactement le format suivant :

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

Dans votre main.rs, lisez le nom, les valeurs d’énergie et de faim de l’animal, configurez votre animal avec ces valeurs, puis appelez la méthode status pour afficher le rapport.

Par exemple, si l’entrée est :

Buddy
70
30

La sortie doit être :

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

Et si l’entrée est :

Max
40
60

La sortie doit être :

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

Cette méthode vous permet de vérifier rapidement le bien-être de votre animal à tout moment !

Essayez vous-même

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

Toutes les leçons de Programmation Orientée Objet

Entraînez-vous par vous-même : Compilateur Rust en ligne