Son Etkileşim
Coddy'nin Rust Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 23 / 61.
Görev
KolayVirtual Pet'inizi oluşturduğunuz için tebrikler! Bu son adımda, yazdığınız her metodun yan yana çalışması için evcil hayvanınızla tam bir etkileşim oturumunu simüle ederek her şeyi bir araya getireceksiniz.
pet.rs modülü size eksiksiz olarak verilir: new, getter'lar, set_energy, set_hunger, feed, play ve status. Yalnızca main.rs dosyasını yazacaksınız.
Önceki adımlardaki üç girdinin aynısını alacaksınız:
- Evcil hayvanın adı
- Evcil hayvanın başlangıçtaki enerjisi
- Evcil hayvanın başlangıçtaki açlığı
main.rs içinde şu sıralamayı gerçekleştirin:
- Verilen adla evcil hayvanı oluşturun, ardından enerjisini ve açlığını girdiden ayarlayın
- Durum raporunu görüntüleyin
- Evcil hayvanınızla iki kez oynayın
- Evcil hayvanınızı bir kez besleyin
--- After Activities ---ayraç satırını yazdırın- Durum raporunu tekrar görüntüleyin
İstatistiklerin nasıl değiştiğini hatırlayın: oynamak 20 enerjiye mal olur ve açlığı 15 artırır, beslemek açlıktan 30 çıkarır, enerji hiçbir zaman 0'ın altına düşmez ve açlık hiçbir zaman 100'ün üzerine çıkmaz. Enerji happy veya daha fazla ve açlık 50 veya daha az olduğunda ruh hâli 50, aksi takdirde tired olur; bu nedenle bir evcil hayvan oturuma mutlu başlayıp oturumu yorgun bitirebilir.
Örneğin, girdiler Luna, 50 ve 50 olduğunda:
--- 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: tiredBu son meydan okuma, oluşturduğunuz eksiksiz Virtual Pet sistemini gösterir: özel alanlara, getter'lara, setter'lara ve tek bir etkileşimli oturum olarak birlikte çalışan metotlara sahip bir modül.
Kendin dene
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: pet'i oluştur ve energy ile hunger değerlerini girdiden ayarla
// TODO: print the first status report
// TODO: iki kez play, sonra bir kez feed
// TODO: print the separator "--- After Activities ---"
// TODO: print the final status report
}
Nesne Yönelimli Programlama bölümündeki tüm dersler
1Metotlar ve Davranış
Uygulama Bloklarına GirişSelf ParametresiDeğiştirilebilir Metotlarİlişkili FonksiyonlarBirden Fazla Uygulama BloğuMetot ZincirlemeÖzet - Dikdörtgen Eylemleri4Proje: Sanal Evcil Hayvan
Evcil Hayvanı TanımlamaEvcil Hayvanı Besleme2Kapsülleme ve Modüller
Modül TemelleriPublic Anahtar KelimesiPrivate AlanlarGetter'larSetter'larÖzet - Güvenli Kasa5Generic Yapılar
Generic Struct'larGeneric MetotlarÇoklu Generic TürlerGeneric FonksiyonlarÖzet - Koordinat Noktası8Sınırlandırıcı Olarak Trait'ler
Trait Sınırlandırıcı SözdizimiÇoklu SınırlandırıcılarWhere CümleciğiTrait'ler ile Tip DöndürmeÖzet - Generic Yazıcı11Rust'ta Tasarım Kalıpları
Newtype KalıbıKompozisyonDrop Trait'iFrom ve IntoÖzet - Smart Pointer Mock3İleri Seviye Enum'lar
Veri İçeren Enum'larEnum MetotlarıVeri Varyantlarını EşlemeOption Enum'ına Yeniden BakışÖzet - Shape Enum6Trait Tanımlama
Trait Nedir?Traitleri UygulamaVarsayılan UygulamalarVarsayılanları Geçersiz KılmaParametreli TraitlerÖzet - Media PlayerKendi başına pratik yap: Online Rust derleyicisi