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 las enumeraciones y las sentencias switch. Tu tarea es crear un sistema que pueda gestionar varios semáforos y proporcionar las acciones adecuadas para los conductores.
- Define una enumeración llamada
TrafficLightcon tres valores:red,yellowygreen - Crea una función llamada
getDriverActionque reciba un parámetroTrafficLighty devuelva la cadena de acción adecuada mediante 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 mediante una sentencia switch:- Para
TrafficLight.red: devuelve30 - Para
TrafficLight.yellow: devuelve3 - Para
TrafficLight.green: devuelve25
- Para
- Crea tres variables para representar diferentes intersecciones:
intersection1de tipoTrafficLightcon el valorTrafficLight.redintersection2de tipoTrafficLightcon el valorTrafficLight.yellowintersection3de tipoTrafficLightcon el valorTrafficLight.green
- Para cada intersección, imprime el estado con 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 en la secuencia del 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 enumeraciones con sentencias switch para crear un sistema de gestión del tráfico seguro en cuanto a tipos y fácil de leer. Las sentencias switch deben gestionar todos los valores de la enumeración y devolver exactamente las cadenas y los números 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áforoPractica por tu cuenta: Compilador de Dart online