Önceki Ders 6 / 10

🎯 Enum ve Pattern Matching

🎮 Ortaokul Bu derste: Oyun durumları ve karakter sınıfları!
📚 Lise Bu derste: Sabit seçenekler ve match ifadesi
🎓 Üniversite Bu derste: Algebraic data types, Option/Result ve advanced patterns

🎮 Oyunda Seçimler!

Enum = Sabit seçenekler listesi! RPG'deki karakter sınıfları gibi.

📝 Örnek 1: Karakter Sınıfı

⚔️ siniflar.berk
// Karakter sınıfları - sadece bu 4'ü olabilir!
enum KarakterSinifi {
    Savasci,    // ⚔️
    Buyucu,     // 🔮
    Okcu,       // 🏹
    Hirsiz,     // 🗡️
}

fonksiyon sinif_ozellikleri(sinif: KarakterSinifi) {
    esle sinif yap
        KarakterSinifi::Savasci => {
            yazdir("⚔️ SAVAŞÇI");
            yazdir("  HP: 150 | ATK: 40 | DEF: 30");
            yazdir("  Özel: Kalkan Savunması");
        },
        KarakterSinifi::Buyucu => {
            yazdir("🔮 BÜYÜCÜ");
            yazdir("  HP: 80 | ATK: 60 | DEF: 10");
            yazdir("  Özel: Ateş Topu");
        },
        KarakterSinifi::Okcu => {
            yazdir("🏹 OKÇU");
            yazdir("  HP: 100 | ATK: 50 | DEF: 15");
            yazdir("  Özel: Kritik Atış");
        },
        KarakterSinifi::Hirsiz => {
            yazdir("🗡️ HIRSIZ");
            yazdir("  HP: 90 | ATK: 45 | DEF: 20");
            yazdir("  Özel: Gizlenme");
        },
    son
}

fonksiyon ana() {
    yazdir("🎮 RPG KARAKTER SEÇİMİ\n");
    
    değişken secim = KarakterSinifi::Buyucu;
    sinif_ozellikleri(secim);
}

📝 Örnek 2: Oyun Durumları

🎲 oyun.berk
enum OyunDurumu {
    Menu,
    Oynuyor,
    Durakladi,
    BittiKazandi,
    BittiKaybetti,
}

fonksiyon durum_goster(durum: OyunDurumu) {
    esle durum yap
        OyunDurumu::Menu => yazdir("🏠 ANA MENÜ"),
        OyunDurumu::Oynuyor => yazdir("🎮 OYUN DEVAM EDİYOR..."),
        OyunDurumu::Durakladi => yazdir("⏸️ DURAKLATILDI"),
        OyunDurumu::BittiKazandi => {
            yazdir("🏆 TEBRİKLER!");
            yazdir("🎉 KAZANDIN!");
        },
        OyunDurumu::BittiKaybetti => {
            yazdir("💀 GAME OVER");
            yazdir("😢 Kaybettin...");
        },
    son
}

fonksiyon ana() {
    değişken mut durum = OyunDurumu::Menu;
    durum_goster(durum);
    
    durum = OyunDurumu::Oynuyor;
    durum_goster(durum);
    
    durum = OyunDurumu::BittiKazandi;
    durum_goster(durum);
}

📌 Özet