Menu
Coddy logo textTech

Końcowa interakcja

Część sekcji Programowanie obiektowe ścieżki Rust w Coddy. Lekcja 23 z 61.

challenge icon

Wyzwanie

Łatwy

Gratulacje z okazji stworzenia Wirtualnego Zwierzaka! W tym ostatnim kroku połączysz wszystko, symulując pełną sesję interakcji ze swoim zwierzakiem, tak aby wszystkie napisane przez Ciebie metody działały razem.

Moduł pet.rs jest już kompletny: new, metody pobierające, set_energy, set_hunger, feed, play i status. Napisz tylko main.rs.

Otrzymasz trzy dane wejściowe — takie same jak we wcześniejszych krokach:

  1. Imię zwierzaka
  2. Początkowy poziom energii zwierzaka
  3. Początkowy poziom głodu zwierzaka

W main.rs wykonaj następującą sekwencję:

  1. Utwórz zwierzaka z podanym imieniem, a następnie ustaw jego poziom energii i głodu na podstawie danych wejściowych
  2. Wyświetl raport o stanie
  3. Pobaw się ze swoim zwierzakiem dwa razy
  4. Nakarm zwierzaka raz
  5. Wypisz linię separatora --- After Activities ---
  6. Ponownie wyświetl raport o stanie

Pamiętaj, jak zmieniają się statystyki: zabawa kosztuje 20 punktów energii i dodaje 15 punktów głodu, karmienie zmniejsza głód o 30, poziom energii nigdy nie spada poniżej 0, a głód nigdy nie wzrasta powyżej 100. Nastrój jest happy, gdy poziom energii wynosi co najmniej 50, a głód nie przekracza 50; w przeciwnym razie jest tired. Zwierzak może więc rozpocząć sesję w dobrym nastroju, a zakończyć ją zmęczony.

Na przykład dla danych wejściowych Luna, 50 i 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

To ostatnie wyzwanie pokazuje kompletny system Wirtualnego Zwierzaka, który został przez Ciebie zbudowany: moduł z prywatnymi polami, metodami pobierającymi i ustawiającymi oraz metodami, które współpracują ze sobą w ramach jednej interaktywnej sesji.

Spróbuj swoich sił

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: utwórz zwierzaka i ustaw jego poziom energii oraz głodu na podstawie danych wejściowych

    // TODO: wyświetl pierwszy raport o stanie

    // TODO: pobaw się dwa razy, a potem nakarm raz

    // TODO: wyświetl separator "--- After Activities ---"

    // TODO: wyświetl końcowy raport o stanie
}

Wszystkie lekcje w sekcji Programowanie obiektowe

Poćwicz samodzielnie: Kompilator Rust online