Menu
Coddy logo textTech

Interaction finale

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

challenge icon

Défi

Facile

Félicitations pour avoir créé votre animal de compagnie virtuel ! Lors de cette dernière étape, vous réunissez tous les éléments en simulant une session d’interaction complète avec votre animal, afin que chaque méthode que vous avez écrite fonctionne conjointement avec les autres.

Votre module pet.rs vous est fourni dans son intégralité : new, les accesseurs, set_energy, set_hunger, feed, play et status. Vous devez uniquement écrire main.rs.

Vous recevrez trois entrées, les mêmes que lors des étapes précédentes :

  1. Le nom de l’animal
  2. L’énergie avec laquelle l’animal commence
  3. La faim avec laquelle l’animal commence

Dans main.rs, effectuez cette séquence :

  1. Créez l’animal avec le nom fourni, puis définissez son énergie et sa faim à partir des entrées
  2. Affichez le rapport d’état
  3. Jouez avec votre animal deux fois
  4. Nourrissez votre animal une fois
  5. Affichez la ligne de séparation --- After Activities ---
  6. Affichez à nouveau le rapport d’état

Souvenez-vous de la façon dont les statistiques évoluent : jouer coûte 20 points d’énergie et ajoute 15 points de faim, nourrir l’animal retire 30 points de faim, l’énergie ne descend jamais en dessous de 0 et la faim ne dépasse jamais 100. L’humeur est happy lorsque l’énergie est supérieure ou égale à 50 et que la faim est inférieure ou égale à 50, et tired dans le cas contraire : un animal peut donc commencer heureux et terminer la session fatigué.

Par exemple, avec les entrées Luna, 50 et 50 :

--- Status Report ---
Name: Luna
Energy: 50
Hunger: 50
Mood: happy
Luna had fun playing!
Luna had fun playing!
Luna enjoyed the meal!
--- After Activities ---
--- Status Report ---
Name: Luna
Energy: 10
Hunger: 50
Mood: tired

Ce dernier défi présente le système complet d’animal de compagnie virtuel que vous avez créé : un module avec des champs privés, des accesseurs, des mutateurs et des méthodes qui fonctionnent ensemble au cours d’une même session 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");

    // TODO: crée le pet et définis son energy et son hunger à partir de l'entrée

    // TODO: print the first status report

    // TODO: play deux fois, puis feed une fois

    // TODO: print the separator "--- After Activities ---"

    // TODO: print the final status report
}

Toutes les leçons de Programmation Orientée Objet

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