Definiowanie typu wyliczeniowego
Część sekcji Logika i przepływ programu ścieżki GDScript w Coddy. Lekcja 38 z 78.
Deklaracja wyliczenia składa się ze słowa kluczowego enum, nazwy oraz opcji ujętych w nawiasy klamrowe i oddzielonych przecinkami. W przewodniku po stylu Godot nazwa jest zapisywana w formacie PascalCase, a opcje w formacie CONSTANT_CASE:
enum Direction { NORTH, EAST, SOUTH, WEST }Długi enum może umieszczać każdą opcję w osobnym wierszu. Przecinek po ostatniej opcji jest dozwolony:
enum Weapon {
SWORD,
BOW,
STAFF,
}Możesz wybrać wartość opcji za pomocą =. Opcja bez wartości otrzymuje wartość poprzedniej opcji powiększoną o 1:
enum Difficulty { EASY = 1, NORMAL, HARD, NIGHTMARE = 10 }
# EASY = 1, NORMAL = 2, HARD = 3, NIGHTMARE = 10Typ wyliczeniowy również jest typem. Zmienna zadeklarowana z jego użyciem przechowuje jedną z jego opcji:
var level: Difficulty = Difficulty.HARD
print(level) # 3
print(level * 50) # 150Skrypt może deklarować kilka typów wyliczeniowych, każdy z własną nazwą. Jeśli pominiesz nazwę, jak w enum { LEFT, RIGHT }, opcje stają się stałymi skryptu i zapisujesz LEFT bez prefiksu.
Wyzwanie
ŁatwyProgram odczytuje podstawowe obrażenia zadawane przez przeciwnika (liczbę całkowitą). Na wyższych poziomach trudności przeciwnik zadaje większe obrażenia: obrażenia to podstawowe obrażenia pomnożone przez wartość poziomu trudności.
- Na najwyższym poziomie skryptu zadeklaruj wyliczenie o nazwie
Difficultyz opcjamiEASY(wartość1),NORMAL,HARDiNIGHTMARE(wartość10). Nie przypisuj własnych wartości doNORMALiHARD, aby ich wartości były kolejnymi liczbami poEASY. - Wypisz obrażenia dla każdego poziomu trudności, po jednym w każdym wierszu, używając opcji wyliczenia w obliczeniach.
Dla danych wejściowych 12 wynikiem jest:
EASY: 12
NORMAL: 24
HARD: 36
NIGHTMARE: 120Spróbuj swoich sił
extends Node
# Zadeklaruj tutaj enum Difficulty
func _ready():
var base_damage := int(OS.read_string_from_stdin())
# Wypisz obrażenia dla każdego poziomu trudności
pass
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Logika i przepływ programu
1Łańcuchy znaków — zagadnienia zaawansowane
Metody łańcuchów znakówWyszukiwanie w łańcuchach znakówZastępowanie i przycinanieDzielenie i łączeniePodsumowanie — sprawdzanie nazwy użytkownika4Słowniki, część 2
Zagnieżdżone słownikiTablice słownikówŁączenie słownikówKopiowanie słownikówPodsumowanie – licznik częstotliwości7Typy wyliczeniowe
Czym jest typ wyliczeniowy?Definiowanie typu wyliczeniowegoWartości typu wyliczeniowegoTypy wyliczeniowe w matchPowtórka – sygnalizacja świetlna10Zaawansowane funkcje
Zwracanie wielu wartościFunkcje lambda — część 1Funkcje lambda — część 2Powtórka — sortowanie za pomocą lambdaFunkcje rekurencyjne — część 1Funkcje rekurencyjne — część 2Powtórka — sumowanie zagnieżdżonej tablicy13System zarządzania zapasami
Omówienie projektuDodawanie produktu2Zaawansowane podejmowanie decyzji
Dopasowanie ze zmiennymiStrażnicy dopasowaniaWzorce tablicWzorce słownikówSprawdzanie przynależnościPowtórka — parser poleceń5Aplikacja książki kontaktów
Wyświetlanie menuDodawanie kontaktu8Menedżer danych studentów
Przegląd projektuDodaj studenta3Tablice wielowymiarowe
Podstawy tablic 2DDostęp do elementów tablic 2DPętle zagnieżdżone z tablicami 2DPodsumowanie — tablice 2DTablice postrzępioneTypowe wzorce tablic 2DPodsumowanie — plansza do gry6Zbiory ze słownikami
Czym jest zbiór?Słownik jako zbiórDodawanie i usuwanieSuma i część wspólnaRóżnica zbiorówPowtórka – usuwanie duplikatów9Zaawansowana agregacja danych
Sumowanie wartościZnajdowanie minimum i maksimumSortowanie niestandardowePodsumowanie – Sortownik słownikówPoćwicz samodzielnie: Kompilator GDScript online