Interaksi Terakhir
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan Rust di Coddy. Pelajaran 23 dari 61.
Tantangan
MudahSelamat, 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:
- Nama peliharaan
- Energi awal peliharaan
- Rasa lapar awal peliharaan
Di main.rs, lakukan urutan berikut:
- Buat peliharaan dengan nama yang diberikan, lalu atur energi dan rasa laparnya dari input
- Tampilkan laporan status
- Bermainlah dengan peliharaanmu dua kali
- Beri makan peliharaanmu sekali
- Cetak baris pemisah
--- After Activities --- - 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: tiredTantangan 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
1Method dan Perilaku
Pengantar Blok ImplementasiParameter SelfMethod MutableFungsi TerkaitBeberapa Blok ImplementasiMethod BerantaiRangkuman: Aksi Persegi Panjang4Proyek: Hewan Peliharaan Virtual
Mendefinisikan Hewan PeliharaanMemberi Makan Hewan Peliharaan2Enkapsulasi dan module
Dasar-Dasar moduleKata Kunci publicField privateGetterSetterRekap: Loker AmanLatihan sendiri: Compiler Rust online