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

  1. Define una enumeración llamada TrafficLight con tres valores: red, yellow y green
  2. Crea una función llamada getDriverAction que reciba un parámetro TrafficLight y 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"
  3. Crea una función llamada getWaitTime que reciba un parámetro TrafficLight y devuelva el tiempo de espera en segundos mediante 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 con el valor TrafficLight.red
    • intersection2 de tipo TrafficLight con el valor TrafficLight.yellow
    • intersection3 de tipo TrafficLight con el valor TrafficLight.green
  5. Para cada intersección, imprime el estado con 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 en la secuencia del 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 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

Practica por tu cuenta: Compilador de Dart online