🎒 Kendi Yaratığını Tasarla!
Struct = Şablon! Bir yaratığın tüm özelliklerini bir arada tutabilirsin.
📝 Örnek 1: Evcil Hayvan Oyunu
🐾 pet.berk
// 🐾 Evcil hayvan şablonu
yapi EvcilHayvan {
isim: metin,
tur: metin,
yas: tamsayı,
mutluluk: tamsayı,
aclik: tamsayı,
}
// Evcil hayvana özellikler ekle
impl EvcilHayvan {
// Yeni hayvan oluştur
fonksiyon yeni(isim: metin, tur: metin) -> EvcilHayvan {
don EvcilHayvan {
isim: isim,
tur: tur,
yas: 0,
mutluluk: 50,
aclik: 50,
};
}
// Besle 🍖
fonksiyon besle(&mut self) {
self.aclik = self.aclik - 20;
self.mutluluk = self.mutluluk + 10;
yazdir("🍖 {} yemek yedi! Mutluluk: {}", self.isim, self.mutluluk);
}
// Oyna 🎾
fonksiyon oyna(&mut self) {
self.mutluluk = self.mutluluk + 20;
self.aclik = self.aclik + 10;
yazdir("🎾 {} ile oynadın! Mutluluk: {}", self.isim, self.mutluluk);
}
// Durum göster
fonksiyon durum(&self) {
yazdir("╔══════════════════╗");
yazdir("║ 🐾 {} ({}) ", self.isim, self.tur);
yazdir("║ 😊 Mutluluk: {} ", self.mutluluk);
yazdir("║ 🍖 Açlık: {} ", self.aclik);
yazdir("╚══════════════════╝");
}
}
fonksiyon ana() {
değişken mut kopek = EvcilHayvan::yeni("Karabaş", "🐕 Köpek");
kopek.durum();
kopek.oyna();
kopek.besle();
kopek.durum();
}
📝 Örnek 2: Monster Kartları
👾 monsters.berk
yapi Canavar {
isim: metin,
element: metin,
can: tamsayı,
saldiri: tamsayı,
savunma: tamsayı,
}
impl Canavar {
fonksiyon kart_goster(&self) {
yazdir("┌─────────────────────┐");
yazdir("│ {} {} ", self.element, self.isim);
yazdir("├─────────────────────┤");
yazdir("│ ❤️ HP: {:3} │", self.can);
yazdir("│ ⚔️ ATK: {:3} │", self.saldiri);
yazdir("│ 🛡️ DEF: {:3} │", self.savunma);
yazdir("└─────────────────────┘");
}
fonksiyon saldir(&self, hedef: &mut Canavar) {
değişken hasar = self.saldiri - hedef.savunma;
eğer hasar > 0 yap
hedef.can = hedef.can - hasar;
yazdir("💥 {} -> {} için {} hasar!", self.isim, hedef.isim, hasar);
değilse yap
yazdir("🛡️ Saldırı engellendi!");
son
}
}
fonksiyon ana() {
değişken mut ejderha = Canavar {
isim: "Ateş Ejderhası",
element: "🔥",
can: 100,
saldiri: 40,
savunma: 20,
};
değişken mut golem = Canavar {
isim: "Kaya Golemi",
element: "🪨",
can: 150,
saldiri: 25,
savunma: 35,
};
ejderha.kart_goster();
golem.kart_goster();
yazdir("\n⚔️ SAVAŞ!\n");
ejderha.saldir(&mut golem);
golem.kart_goster();
}
📌 Özet
yapi/structile yapı tanımlanırimplbloğu ile metotlar eklenir&selfokuma,&mut selfdeğiştirme için