Menu
Coddy logo textTech

Recapitulação - Semáforo

Parte da seção Lógica & Fluxo do Journey de Dart da Coddy — lição 62 de 65.

challenge icon

Desafio

Fácil

Crie um sistema abrangente de gerenciamento de semáforos que demonstre seu domínio de enums e instruções switch. Sua tarefa é construir um sistema que possa lidar com múltiplos semáforos e fornecer as ações apropriadas para os motoristas.

  1. Defina um enum chamado TrafficLight com três valores: red, yellow e green
  2. Crie uma função chamada getDriverAction que recebe um parâmetro TrafficLight e retorna a string de ação apropriada usando uma instrução switch:
    • Para TrafficLight.red: retorne "Stop"
    • Para TrafficLight.yellow: retorne "Caution"
    • Para TrafficLight.green: retorne "Go"
  3. Crie uma função chamada getWaitTime que recebe um parâmetro TrafficLight e retorna o tempo de espera em segundos usando uma instrução switch:
    • Para TrafficLight.red: retorne 30
    • Para TrafficLight.yellow: retorne 3
    • Para TrafficLight.green: retorne 25
  4. Crie três variáveis para representar diferentes cruzamentos:
    • intersection1 do tipo TrafficLight configurada como TrafficLight.red
    • intersection2 do tipo TrafficLight configurada como TrafficLight.yellow
    • intersection3 do tipo TrafficLight configurada como TrafficLight.green
  5. Para cada cruzamento, imprima o status neste formato exato:
    • 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. Simule uma mudança na sequência do semáforo atualizando intersection1 para TrafficLight.green
  7. Imprima o status atualizado: Updated Intersection 1: Green light - Go - Wait time: 25 seconds
  8. Crie um resumo imprimindo: Traffic system managing 3 intersections successfully

Seu programa deve demonstrar o poder de combinar enums com instruções switch para criar um sistema de gerenciamento de tráfego legível e com segurança de tipos (type-safe). As instruções switch devem lidar com todos os valores do enum e retornar exatamente as strings e números especificados acima.

Experimente você mesmo

import 'dart:io';

// TODO: Defina seu enum TrafficLight aqui

// TODO: Crie sua função getDriverAction aqui

// TODO: Crie sua função getWaitTime aqui

void main() {
  // TODO: Escreva seu código abaixo
  
  // Criar variáveis de interseção
  
  // Imprimir o status de cada interseção
  
  // Atualizar intersection1 e imprimir o status atualizado
  
  // Imprimir resumo
}

Todas as lições de Lógica & Fluxo