Enum Tanımlama
Coddy'nin GDScript Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 38 / 78.
Bir enum bildirimi, enum anahtar sözcüğünden, bir addan ve virgüllerle ayrılmış süslü parantezlerin içindeki seçeneklerden oluşur. Godot stil kılavuzu, adın PascalCase biçiminde, seçeneklerin ise CONSTANT_CASE biçiminde yazılmasını önerir:
enum Direction { NORTH, EAST, SOUTH, WEST }Uzun bir enumda her seçenek ayrı bir satıra yazılabilir. Son seçeneğin ardından virgül koymaya izin verilir:
enum Weapon {
SWORD,
BOW,
STAFF,
}Bir seçeneğin değerini = ile belirleyebilirsin. Değeri olmayan bir seçenek, kendisinden önceki seçeneğin değerine 1 eklenmiş hâlini alır:
enum Difficulty { EASY = 1, NORMAL, HARD, NIGHTMARE = 10 }
# EASY = 1, NORMAL = 2, HARD = 3, NIGHTMARE = 10Enum da bir türdür. Onunla bildirilen bir değişken, seçeneklerinden birini tutar:
var level: Difficulty = Difficulty.HARD
print(level) # 3
print(level * 50) # 150Bir betik, her biri kendi adına sahip olan birkaç enum bildirebilir. Adı belirtmezsen, enum { LEFT, RIGHT } örneğinde olduğu gibi, seçenekler betiğin sabitleri hâline gelir ve LEFT ifadesini bir önek olmadan yazarsın.
Görev
KolayProgram, bir düşmanın temel hasarını (tam sayı) okur. Daha zor zorluk seviyelerinde düşman daha sert vurur: hasar, temel hasarın zorluk seviyesinin değeriyle çarpımıdır.
- Betik düzeyinde,
Difficultyadlı bir enum tanımla; seçenekleriEASY(değeri1),NORMAL,HARDveNIGHTMARE(değeri10) olsun.NORMALveHARDiçin kendi değerlerini belirtme; böyleceEASYdeğerinden itibaren sayılırlar. - Hesaplamada enum seçeneklerini kullanarak her zorluk seviyesi için hasarı, satır başına bir tane olacak şekilde yazdır.
12 girdisi için çıktı şöyledir:
EASY: 12
NORMAL: 24
HARD: 36
NIGHTMARE: 120Kendin dene
extends Node
# Difficulty enum'unu burada tanımlayın
func _ready():
var base_damage := int(OS.read_string_from_stdin())
# Her zorluk seviyesi için hasarı yazdırın
pass
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık ve Akış bölümündeki tüm dersler
1String’leri Derinlemesine İnceleme
String MetotlarıString’lerde AramaDeğiştirme ve KırpmaBölme ve BirleştirmeTekrar: Kullanıcı Adı Kontrolü4Sözlükler Bölüm 2
İç İçe SözlüklerSözlük DizileriSözlükleri BirleştirmeSözlükleri KopyalamaTekrar - Frekans Sayacı10İleri Düzey Fonksiyonlar
Birden Fazla Değer DöndürmeLambda Fonksiyonları Bölüm 1Lambda Fonksiyonları Bölüm 2Tekrar - Lambda ile SıralamaÖzyinelemeli Fonksiyonlar Bölüm 1Özyinelemeli Fonksiyonlar Bölüm 2Tekrar - İç İçe Dizilerin Toplamı13Envanter Yönetim Sistemi
Projeye Genel BakışÜrün Ekle2İleri Düzey Karar Verme
Değişkenlerle EşleştirmeEşleştirme KoşullarıDizi KalıplarıSözlük KalıplarıÜyelik KontrolleriÖzet - Komut Ayrıştırıcı5Rehber Uygulaması
Menüyü GörüntüleKişi Ekle8Öğrenci Kayıt Yöneticisi
Proje Genel BakışıÖğrenci Ekle11Üst Düzey Fonksiyonlar
map Metodufilter Metodureduce Metoduany ve allTekrar - E-posta DoğrulayıcıTekrar - Sayı İşleyici3Çok Boyutlu Diziler
2B Dizilere Giriş2B Dizi Elemanlarına Erişim2B Dizilerle İç İçe DöngülerTekrar - 2B DizilerDüzensiz DizilerYaygın 2B Dizi ÖrüntüleriTekrar - Oyun Tahtası6Sözlüklerle Kümeler
Küme Nedir?Küme Olarak SözlükEkleme ve SilmeBirleşim ve KesişimKüme FarkıTekrar: Yinelenenleri Silme9Gelişmiş Veri Toplama
Değerleri ToplamaEn Küçük ve En Büyük Değeri BulmaÖzel SıralamaÖzet - Sözlük SıralayıcıKendi başına pratik yap: Online GDScript derleyicisi