Menu
Coddy logo textTech

Podsumowanie – sygnalizacja świetlna

Część sekcji Logika i przepływ sterowania ścieżki Dart w Coddy. Lekcja 62 z 65.

challenge icon

Wyzwanie

Łatwy

Stwórz kompleksowy system zarządzania sygnalizacją świetlną, który zademonstruje Twoją biegłość w korzystaniu z typów wyliczeniowych i instrukcji switch. Twoim zadaniem jest zbudowanie systemu, który obsługuje wiele sygnalizatorów świetlnych i podaje kierowcom odpowiednie wskazówki.

  1. Zdefiniuj typ wyliczeniowy o nazwie TrafficLight z trzema wartościami: red, yellow i green
  2. Utwórz funkcję o nazwie getDriverAction, która przyjmuje parametr typu TrafficLight i zwraca odpowiedni tekst z instrukcją, używając instrukcji switch:
    • Dla TrafficLight.red: zwróć "Stop"
    • Dla TrafficLight.yellow: zwróć "Caution"
    • Dla TrafficLight.green: zwróć "Go"
  3. Utwórz funkcję o nazwie getWaitTime, która przyjmuje parametr typu TrafficLight i zwraca czas oczekiwania w sekundach, używając instrukcji switch:
    • Dla TrafficLight.red: zwróć 30
    • Dla TrafficLight.yellow: zwróć 3
    • Dla TrafficLight.green: zwróć 25
  4. Utwórz trzy zmienne reprezentujące różne skrzyżowania:
    • intersection1 typu TrafficLight, ustawiona na TrafficLight.red
    • intersection2 typu TrafficLight, ustawiona na TrafficLight.yellow
    • intersection3 typu TrafficLight, ustawiona na TrafficLight.green
  5. Dla każdego skrzyżowania wyświetl jego status w dokładnie takim formacie:
    • 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. Zasymuluj zmianę sekwencji sygnalizacji świetlnej, ustawiając intersection1 na TrafficLight.green
  7. Wyświetl zaktualizowany status: Updated Intersection 1: Green light - Go - Wait time: 25 seconds
  8. Utwórz podsumowanie, wyświetlając: Traffic system managing 3 intersections successfully

Twój program powinien zademonstrować możliwości połączenia typów wyliczeniowych z instrukcjami switch w celu stworzenia bezpiecznego typowo, czytelnego systemu zarządzania ruchem drogowym. Instrukcje switch muszą obsługiwać wszystkie wartości typu wyliczeniowego i zwracać dokładnie określone powyżej ciągi znaków i liczby.

Spróbuj swoich sił

import 'dart:io';

// TODO: Zdefiniuj tutaj enum TrafficLight

// TODO: Utwórz tutaj funkcję getDriverAction

// TODO: Utwórz tutaj funkcję getWaitTime

void main() {
  // TODO: Napisz swój kod poniżej
  
  // Utwórz zmienne dla skrzyżowań
  
  // Wyświetl stan każdego skrzyżowania
  
  // Zaktualizuj intersection1 i wyświetl jego aktualny stan
  
  // Wyświetl podsumowanie
}

Wszystkie lekcje w sekcji Logika i przepływ sterowania

Poćwicz samodzielnie: Kompilator Dart online