Evcil Hayvanla Oyun Oynama
Coddy'nin Rust Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 21 / 61.
Görev
KolayEvcil hayvanınız beslendi ve mutlu: şimdi ona biraz egzersiz yaptıralım! Bu adımda sanal arkadaşınızla etkileşim kurmanızı sağlayan bir play yöntemi ekleyeceksiniz.
Evcil hayvanınızla oynamak enerjiye mal olmalı, ancak onu daha da acıktırmalıdır. Evcil hayvanınız oynadığında energy değeri 20 azalır ve hunger değeri 15 artar. Ancak enerji hiçbir zaman 0 değerinin altına düşmemeli ve açlık hiçbir zaman 100 değerini aşmamalıdır.
Ayrıca oyun zamanından sonra evcil hayvanınızın ne kadar yorulduğunu kontrol etmek için bir energy getter yöntemi eklemeniz gerekecek.
main.rs dosyanızda evcil hayvanın adını, başlangıç enerji ve açlık değerleriyle birlikte okuyun. Evcil hayvanınızı oluşturduktan sonra play yöntemini bir kez çağırın ve hem enerji hem de açlık seviyelerini görüntüleyin.
play yöntemi, evcil hayvanınızın eğlendiğini gösteren bir mesaj yazdırmalıdır:
{name} had fun playing!Ardından main dosyanız istatistikleri görüntülemelidir:
Energy: {energy_level}
Hunger: {hunger_level}Örneğin, girdi şu şekildeyse:
Buddy
50
30Çıktı şu şekilde olmalıdır:
Buddy had fun playing!
Energy: 30
Hunger: 45Enerji 10 değerinden başlıyorsa oyun bunu 0 değerine getirir (negatif olmaz). Açlık 90 değerinden başlıyorsa oyun bunu 100 ile sınırlar.
Test amacıyla her iki değeri de başlatmak için mevcut set_energy yönteminizin yanına bir set_hunger yöntemi eklemeniz gerekecek.
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.play();
println!("Energy: {}", my_pet.energy());
println!("Hunger: {}", my_pet.hunger());
}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