Menu
Coddy logo textTech

Riepilogo - Semaforo

Fa parte della sezione Logica e flusso del percorso Dart di Coddy. Lezione 62 di 65.

challenge icon

Sfida

Facile

Crea un sistema completo di gestione dei semafori che dimostri la tua padronanza delle enumerazioni e delle istruzioni switch. Il tuo compito è creare un sistema in grado di gestire più semafori e fornire le azioni appropriate per i conducenti.

  1. Definisci un'enumerazione chiamata TrafficLight con tre valori: red, yellow e green
  2. Crea una funzione chiamata getDriverAction che accetti un parametro TrafficLight e restituisca la stringa di azione appropriata usando un'istruzione switch:
    • Per TrafficLight.red: restituisci "Stop"
    • Per TrafficLight.yellow: restituisci "Caution"
    • Per TrafficLight.green: restituisci "Go"
  3. Crea una funzione chiamata getWaitTime che accetti un parametro TrafficLight e restituisca il tempo di attesa in secondi usando un'istruzione switch:
    • Per TrafficLight.red: restituisci 30
    • Per TrafficLight.yellow: restituisci 3
    • Per TrafficLight.green: restituisci 25
  4. Crea tre variabili per rappresentare intersezioni diverse:
    • intersection1 di tipo TrafficLight, impostata su TrafficLight.red
    • intersection2 di tipo TrafficLight, impostata su TrafficLight.yellow
    • intersection3 di tipo TrafficLight, impostata su TrafficLight.green
  5. Per ogni intersezione, stampa lo stato in questo formato esatto:
    • 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 di sequenza del semaforo aggiornando intersection1 a TrafficLight.green
  7. Stampa lo stato aggiornato: Updated Intersection 1: Green light - Go - Wait time: 25 seconds
  8. Crea un riepilogo stampando: Traffic system managing 3 intersections successfully

Il tuo programma dovrebbe dimostrare i vantaggi di combinare le enumerazioni con le istruzioni switch per creare un sistema di gestione del traffico leggibile e con sicurezza dei tipi. Le istruzioni switch devono gestire tutti i valori dell'enumerazione e restituire esattamente le stringhe e i numeri specificati sopra.

Provalo tu

import 'dart:io';

// TODO: Definisci qui il tuo enum TrafficLight

// TODO: Crea qui la tua funzione getDriverAction

// TODO: Crea qui la tua funzione getWaitTime

void main() {
  // TODO: Scrivi il tuo codice qui sotto
  
  // Crea le variabili per gli incroci
  
  // Stampa lo stato di ogni incrocio
  
  // Aggiorna intersection1 e stampa lo stato aggiornato
  
  // Stampa il riepilogo
}

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Dart online