Resumen - Semáforo
Parte de la sección Lógica y Flujo del Journey de Dart de Coddy — lección 62 de 65.
Desafío
FácilCrea un sistema integral de gestión de semáforos que demuestre tu dominio de los enums y las sentencias switch. Tu tarea es construir un sistema que pueda manejar múltiples semáforos y proporcionar las acciones apropiadas para los conductores.
- Define un enum llamado
TrafficLightcon tres valores:red,yellow, ygreen - Crea una función llamada
getDriverActionque reciba un parámetroTrafficLighty devuelva el string de acción apropiado utilizando una sentencia switch:- Para
TrafficLight.red: devuelve"Stop" - Para
TrafficLight.yellow: devuelve"Caution" - Para
TrafficLight.green: devuelve"Go"
- Para
- Crea una función llamada
getWaitTimeque reciba un parámetroTrafficLighty devuelva el tiempo de espera en segundos utilizando una sentencia switch:- Para
TrafficLight.red: devuelve30 - Para
TrafficLight.yellow: devuelve3 - Para
TrafficLight.green: devuelve25
- Para
- Crea tres variables para representar diferentes intersecciones:
intersection1de tipoTrafficLightestablecida enTrafficLight.redintersection2de tipoTrafficLightestablecida enTrafficLight.yellowintersection3de tipoTrafficLightestablecida enTrafficLight.green
- Para cada intersección, imprime el estado en este formato exacto:
Intersection 1: Red light - Stop - Wait time: 30 secondsIntersection 2: Yellow light - Caution - Wait time: 3 secondsIntersection 3: Green light - Go - Wait time: 25 seconds
- Simula un cambio de secuencia de semáforo actualizando
intersection1aTrafficLight.green - Imprime el estado actualizado:
Updated Intersection 1: Green light - Go - Wait time: 25 seconds - Crea un resumen imprimiendo:
Traffic system managing 3 intersections successfully
Tu programa debe demostrar el poder de combinar enums con sentencias switch para crear un sistema de gestión de tráfico legible y con seguridad de tipos. Las sentencias switch deben manejar todos los valores del enum y devolver los strings y números exactos especificados anteriormente.
Pruébalo tú mismo
import 'dart:io';
// TODO: Define tu enum TrafficLight aquí
// TODO: Crea tu función getDriverAction aquí
// TODO: Crea tu función getWaitTime aquí
void main() {
// TODO: Escribe tu código abajo
// Crear variables de intersección
// Imprimir el estado de cada intersección
// Actualizar intersection1 e imprimir el estado actualizado
// Imprimir resumen
}Todas las lecciones de Lógica y Flujo
1Manipulación avanzada de listas
Propiedades de listas: first y lastEstado de la lista: isEmpty y isNotEmptyInvertir una listaAñadir a una lista: insertEliminación en listas: removeWhereBúsqueda en una lista: indexOfOrdenar una listaMezclar una listaResumen - Organizador de listas4Manipulación avanzada de mapas
Iterar sobre un mapaComprobación de claves y valoresPropiedades del mapa: keys y valuesAdición condicional: putIfAbsentEliminar entradas de un mapaMapas anidadosResumen - Actualización de inventario2Operaciones funcionales con listas
Transformar con 'map'Filtrar con 'where'Uso de '.toList()'Comprobar condiciones con 'any'Condiciones con 'every'Búsqueda con 'firstWhere'Resumen - Filtrado de datos5Proyecto: Calculadora de carrito de compras
Configuración del proyectoAgregar artículos al carrito3Conjuntos
¿Qué es un Conjunto?Crear un ConjuntoAñadir y eliminar elementos de un ConjuntoComprobar elementos en un ConjuntoConvertir una lista en un ConjuntoUnión de ConjuntosIntersección de ConjuntosDiferencia de ConjuntosResumen - Lista de invitados única6Manejo básico de errores
¿Qué son las excepciones?El bloque 'try-catch'Capturar excepciones con 'on'El bloque 'finally'Lanzar una excepciónResumen - División segura9Enumeraciones (Enums)
¿Qué son los Enums?Definir un Enum simpleUso de Enums en variablesEnums en sentencias 'switch'Resumen - Semáforo