Definir una enumeración
Parte de la sección Lógica y flujo del Journey de GDScript de Coddy. Lección 38 de 78.
Una declaración de enumeración es la palabra clave enum, un nombre y las opciones entre llaves, separadas por comas. La guía de estilo de Godot escribe el nombre en PascalCase y las opciones en CONSTANT_CASE:
enum Direction { NORTH, EAST, SOUTH, WEST }En una enumeración larga, puedes poner una opción por línea. Se permite una coma después de la última opción:
enum Weapon {
SWORD,
BOW,
STAFF,
}Puedes elegir el valor de una opción con =. Una opción sin valor obtiene el valor de la opción anterior más 1:
enum Difficulty { EASY = 1, NORMAL, HARD, NIGHTMARE = 10 }
# EASY = 1, NORMAL = 2, HARD = 3, NIGHTMARE = 10El enum también es un tipo. Una variable declarada con él contiene una de sus opciones:
var level: Difficulty = Difficulty.HARD
print(level) # 3
print(level * 50) # 150Un script puede declarar varias enumeraciones, cada una con su propio nombre. Si omites el nombre, como en enum { LEFT, RIGHT }, las opciones se convierten en constantes del script y escribes LEFT sin prefijo.
Desafío
FácilEl programa lee el daño base de un enemigo (un número entero). En las dificultades más altas, el enemigo golpea con más fuerza: el daño es el daño base multiplicado por el valor de la dificultad.
- En el nivel superior del script, declara un enum llamado
Difficultycon las opcionesEASY(valor1),NORMAL,HARDyNIGHTMARE(valor10). No asignes valores propios aNORMALni aHARD, para que continúen la cuenta a partir deEASY. - Imprime el daño para cada dificultad, uno por línea, usando las opciones del enum en el cálculo.
Para la entrada 12, la salida es:
EASY: 12
NORMAL: 24
HARD: 36
NIGHTMARE: 120Pruébalo tú mismo
extends Node
# Declara el enum Difficulty aquí
func _ready():
var base_damage := int(OS.read_string_from_stdin())
# Imprime el daño para cada dificultad
pass
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y flujo
1Cadenas de texto en profundidad
Métodos de cadenasBúsqueda en cadenasReemplazar y eliminar espaciosDividir y unirRepaso - Comprobación del nombre de usuario4Diccionarios, parte 2
Diccionarios anidadosArrays de diccionariosCombinar diccionariosCopiar diccionariosRepaso: contador de frecuencias7Enumeraciones
¿Qué es una enumeración?Definir una enumeraciónValores de una enumeraciónEnumeraciones en matchRepaso: semáforo10Funciones avanzadas
Devolver múltiples valoresFunciones lambda, parte 1Funciones lambda, parte 2Repaso: ordenar con lambdaFunciones recursivas, parte 1Funciones recursivas, parte 2Repaso: sumar un array anidado13Sistema de gestión de inventario
Descripción general del proyectoAñadir artículo2Toma de decisiones avanzada
Coincidencia con variablesGuardas de coincidenciaPatrones de arraysPatrones de diccionariosComprobaciones de pertenenciaRepaso: analizador de comandos5Aplicación de agenda de contactos
Mostrar menúAñadir contacto8Gestor de expedientes estudiantiles
Descripción del proyectoAgregar estudiante3Arrays multidimensionales
Conceptos básicos de arrays 2DAcceso a elementos de arrays 2DBucles anidados con arrays 2DRepaso: arrays 2DArrays irregularesPatrones comunes de arrays 2DRepaso: tablero de juego6Conjuntos con diccionarios
¿Qué es un conjunto?El diccionario como conjuntoAñadir y eliminarUnión e intersecciónDiferencia de conjuntosRepaso: eliminar duplicados9Agregación avanzada de datos
Suma de valoresCómo encontrar el mínimo y el máximoOrdenación personalizadaRepaso: organizador de diccionariosPractica por tu cuenta: Compilador de GDScript online