Menu
Coddy logo textTech

Interaction finale

Fait partie de la section Object Oriented Programming du Journey Rust de Coddy — leçon 23 sur 61.

challenge icon

Défi

Facile

Félicitations pour la création de votre animal de compagnie virtuel ! Dans cette dernière étape, vous allez tout mettre en œuvre en simulant une session d'interaction complète avec votre animal. C'est ici que toutes vos méthodes fonctionnent en harmonie !

Votre module d'animal de compagnie possède déjà tout ce dont il a besoin : l'alimentation, le jeu et le rapport d'état. Vous allez maintenant créer une simulation qui montre une journée dans la vie de votre compagnon virtuel.

Dans votre main.rs, vous allez lire le nom de votre animal, puis effectuer une séquence d'interactions :

  1. Créer un nouvel animal avec le nom donné
  2. Afficher le rapport d'état initial
  3. Jouer avec votre animal deux fois
  4. Nourrir votre animal une fois
  5. Afficher le rapport d'état final

Entre les deux rapports d'état, affichez une ligne de séparation pour montrer la transition :

--- After Activities ---

Par exemple, si l'entrée est :

Buddy

La sortie devrait être :

--- Status Report ---
Name: Buddy
Energy: 100
Hunger: 0
Mood: happy
Buddy had fun playing!
Buddy had fun playing!
Buddy enjoyed the meal!
--- After Activities ---
--- Status Report ---
Name: Buddy
Energy: 60
Hunger: 0
Mood: happy

Rappelez-vous comment les statistiques changent : jouer coûte 20 d'énergie et ajoute 15 de faim à chaque fois, tandis que nourrir réduit la faim de 30. Après deux sessions de jeu et un repas, l'énergie de votre animal passe de 100 à 60, et la faim passe de 0 à 30 puis revient à 0.

Ce défi final met en valeur le système complet d'animal de compagnie virtuel que vous avez construit — un module entièrement encapsulé avec des champs privés, des getters, des setters et des méthodes qui fonctionnent ensemble pour créer une expérience interactive !

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

Toutes les leçons de Object Oriented Programming