Riepilogo - Semaforo
Fa parte della sezione Logica e flusso del percorso Dart di Coddy. Lezione 62 di 65.
Sfida
FacileCrea 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.
- Definisci un'enumerazione chiamata
TrafficLightcon tre valori:red,yellowegreen - Crea una funzione chiamata
getDriverActionche accetti un parametroTrafficLighte 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"
- Per
- Crea una funzione chiamata
getWaitTimeche accetti un parametroTrafficLighte restituisca il tempo di attesa in secondi usando un'istruzione switch:- Per
TrafficLight.red: restituisci30 - Per
TrafficLight.yellow: restituisci3 - Per
TrafficLight.green: restituisci25
- Per
- Crea tre variabili per rappresentare intersezioni diverse:
intersection1di tipoTrafficLight, impostata suTrafficLight.redintersection2di tipoTrafficLight, impostata suTrafficLight.yellowintersection3di tipoTrafficLight, impostata suTrafficLight.green
- Per ogni intersezione, stampa lo stato in questo formato esatto:
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 di sequenza del semaforo aggiornando
intersection1aTrafficLight.green - Stampa lo stato aggiornato:
Updated Intersection 1: Green light - Go - Wait time: 25 seconds - 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
1Manipolazione avanzata delle liste
Proprietà delle liste: primo e ultimoStato della lista: isEmpty e isNotEmpInvertire una listaAggiungere a una lista: insertRimozione dalla lista: removeWhereRicerca in una lista: indexOfOrdinare una listaMescolare una listaRiepilogo - Organizzatore di liste4Manipolazione avanzata delle mappe
Iterare su una mappaVerificare chiavi e valoriProprietà delle mappe: chiavi e valoriAggiunta condizionale: putIfAbsentRimuovere elementi da una mappaMappe annidateRiepilogo - Aggiornamento dell'inventario2Operazioni funzionali sulle liste
Trasformare con 'map'Filtrare con 'where'Usare '.toList()'Verificare condizioni con 'any'Condizioni con 'every'Trovare con 'firstWhere'Riepilogo - Filtraggio dei dati3Insiemi
Che cos'è un insieme?Creare un insiemeAggiungere e rimuovere elementi dagli insiemiVerificare la presenza di elementi in un insiemeConvertire una lista in un insiemeUnione di insiemiIntersezione di insiemiDifferenza tra insiemiRiepilogo - Lista degli ospiti unici6Gestione di base degli errori
Cosa sono le eccezioni?Il blocco 'try-catch'Gestire le eccezioni con 'on'Il blocco 'finally'Lanciare un'eccezioneRiepilogo - Divisione sicura9Enumerazioni (Enum)
Cosa sono gli enum?Definire un enum sempliceUsare gli enum nelle variabiliGli enum nelle istruzioni 'switch'Riepilogo - SemaforoEsercitati da solo: Compilatore Dart online