Menu
Coddy logo textTech

Resumen - Semáforo

Parte de la sección Lógica y Flujo del Journey de Dart de Coddy — lección 62 de 65.

challenge icon

Desafío

Fácil

Crea 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.

  1. Define un enum llamado TrafficLight con tres valores: red, yellow, y green
  2. Crea una función llamada getDriverAction que reciba un parámetro TrafficLight y 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"
  3. Crea una función llamada getWaitTime que reciba un parámetro TrafficLight y devuelva el tiempo de espera en segundos utilizando una sentencia switch:
    • Para TrafficLight.red: devuelve 30
    • Para TrafficLight.yellow: devuelve 3
    • Para TrafficLight.green: devuelve 25
  4. Crea tres variables para representar diferentes intersecciones:
    • intersection1 de tipo TrafficLight establecida en TrafficLight.red
    • intersection2 de tipo TrafficLight establecida en TrafficLight.yellow
    • intersection3 de tipo TrafficLight establecida en TrafficLight.green
  5. Para cada intersección, imprime el estado en este formato exacto:
    • Intersection 1: Red light - Stop - Wait time: 30 seconds
    • Intersection 2: Yellow light - Caution - Wait time: 3 seconds
    • Intersection 3: Green light - Go - Wait time: 25 seconds
  6. Simula un cambio de secuencia de semáforo actualizando intersection1 a TrafficLight.green
  7. Imprime el estado actualizado: Updated Intersection 1: Green light - Go - Wait time: 25 seconds
  8. 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