Menu
CoddyTech

Interaksi Terakhir

Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan Rust di Coddy. Pelajaran 23 dari 61.

challenge icon

Tantangan

Mudah

Selamat, kamu berhasil membangun Virtual Pet! Pada langkah terakhir ini, kamu menggabungkan semuanya dengan menyimulasikan sesi interaksi lengkap dengan peliharaanmu, sehingga semua method yang kamu tulis bekerja bersama.

Module pet.rs sudah lengkap untuk kamu: new, getter, set_energy, set_hunger, feed, play dan status. Kamu hanya perlu menulis main.rs.

Kamu akan menerima tiga input, sama seperti pada langkah-langkah sebelumnya:

  1. Nama peliharaan
  2. Energi awal peliharaan
  3. Rasa lapar awal peliharaan

Di main.rs, lakukan urutan berikut:

  1. Buat peliharaan dengan nama yang diberikan, lalu atur energi dan rasa laparnya dari input
  2. Tampilkan laporan status
  3. Bermainlah dengan peliharaanmu dua kali
  4. Beri makan peliharaanmu sekali
  5. Cetak baris pemisah --- After Activities ---
  6. Tampilkan laporan status sekali lagi

Ingat perubahan statistiknya: bermain menghabiskan 20 energi dan menambah 15 rasa lapar, memberi makan mengurangi rasa lapar sebanyak 30, energi tidak pernah turun di bawah 0 dan rasa lapar tidak pernah naik di atas 100. Suasananya happy saat energi bernilai 50 atau lebih dan rasa lapar bernilai 50 atau kurang, dan tired jika tidak, sehingga peliharaan bisa memulai dengan suasana hati senang dan mengakhiri sesi dengan suasana hati lelah.

Contohnya, dengan input Luna, 50 dan 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

Tantangan terakhir ini menunjukkan sistem Virtual Pet lengkap yang sudah kamu bangun: sebuah module dengan field privat, getter, setter, dan method yang bekerja bersama dalam satu sesi interaktif.

Coba sendiri

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: buat peliharaanmu dan atur energi serta rasa laparnya dari input

    // TODO: tampilkan laporan status pertama

    // TODO: ajak bermain dua kali, lalu beri makan sekali

    // TODO: tampilkan pemisah "--- After Activities ---"

    // TODO: tampilkan laporan status terakhir
}

Semua pelajaran di Pemrograman Berorientasi Objek

Latihan sendiri: Compiler Rust online