Son Etkileşim
Coddy'nin Rust Journey'sinin Object Oriented Programming bölümünün bir parçası — ders 23 / 61.
Görev
KolaySanal Evcil Hayvanınızı oluşturduğunuz için tebrikler! Bu son adımda, evcil hayvanınızla eksiksiz bir etkileşim oturumu simüle ederek her şeyi bir araya getireceksiniz. Burası tüm metotlarınızın uyum içinde çalıştığı yerdir!
Evcil hayvan modülünüz zaten ihtiyacı olan her şeye sahip: besleme, oyun oynama ve durum raporlama. Şimdi sanal dostunuzun hayatından bir günü gösteren bir simülasyon oluşturacaksınız.
main.rs dosyanızda, evcil hayvanınızın adını okuyacak ve ardından bir dizi etkileşim gerçekleştireceksiniz:
- Verilen isimle yeni bir evcil hayvan oluşturun
- Başlangıç durum raporunu görüntüleyin
- Evcil hayvanınızla iki kez oynayın
- Evcil hayvanınızı bir kez besleyin
- Son durum raporunu görüntüleyin
İki durum raporu arasında, geçişi göstermek için bir ayırıcı satır yazdırın:
--- After Activities ---Örneğin, girdi şu şekildeyse:
BuddyÇıktı şu şekilde olmalıdır:
--- Status Report ---
Name: Buddy
Energy: 100
Hunger: 0
Mood: happy
Buddy had fun playing!
Buddy had fun playing!
Buddy enjoyed the meal!
--- After Activities ---
--- Status Report ---
Name: Buddy
Energy: 60
Hunger: 0
Mood: happyİstatistiklerin nasıl değiştiğini unutmayın: oyun oynamak her seferinde 20 enerji harcar ve 15 açlık ekler, beslemek ise açlığı 30 azaltır. İki oyun seansı ve bir beslemeden sonra, evcil hayvanınızın enerjisi 100'den 60'a düşer ve açlık 0'dan 30'a çıkar, ardından tekrar 0'a iner.
Bu son görev, oluşturduğunuz eksiksiz Sanal Evcil Hayvan sistemini sergiliyor; özel alanlar (private fields), getter'lar, setter'lar ve etkileşimli bir deneyim oluşturmak için birlikte çalışan metotlarla tam kapsüllenmiş 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");
let mut my_pet = Pet::new(name);
my_pet.set_energy(initial_energy);
my_pet.set_hunger(initial_hunger);
my_pet.status();
}
Object Oriented Programming 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 Player