Menu
Coddy logo textTech

Итоги — Светофор

Часть раздела Логика и управление потоком путешествия по Dart на Coddy — урок 62 из 65.

challenge icon

Задание

Легко

Создайте комплексную систему управления светофорами, которая продемонстрирует ваше мастерство владения перечислениями (enums) и операторами switch. Ваша задача — построить систему, которая может обрабатывать несколько светофоров и предоставлять соответствующие действия для водителей.

  1. Определите перечисление с названием TrafficLight с тремя значениями: red, yellow и green
  2. Создайте функцию с названием getDriverAction, которая принимает параметр TrafficLight и возвращает строку соответствующего действия, используя оператор switch:
    • Для TrafficLight.red: вернуть "Stop"
    • Для TrafficLight.yellow: вернуть "Caution"
    • Для TrafficLight.green: вернуть "Go"
  3. Создайте функцию с названием getWaitTime, которая принимает параметр TrafficLight и возвращает время ожидания в секундах, используя оператор switch:
    • Для TrafficLight.red: вернуть 30
    • Для TrafficLight.yellow: вернуть 3
    • Для TrafficLight.green: вернуть 25
  4. Создайте три переменные для представления различных перекрестков:
    • intersection1 типа TrafficLight со значением TrafficLight.red
    • intersection2 типа TrafficLight со значением TrafficLight.yellow
    • intersection3 типа TrafficLight со значением TrafficLight.green
  5. Для каждого перекрестка выведите статус в следующем точном формате:
    • 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. Симитируйте смену последовательности сигналов светофора, обновив intersection1 на TrafficLight.green
  7. Выведите обновленный статус: Updated Intersection 1: Green light - Go - Wait time: 25 seconds
  8. Создайте сводку, выведя: Traffic system managing 3 intersections successfully

Ваша программа должна продемонстрировать мощь сочетания перечислений с операторами switch для создания типобезопасной и читаемой системы управления трафиком. Операторы switch должны обрабатывать все значения перечисления и возвращать именно те строки и числа, которые указаны выше.

Попробуйте сами

import 'dart:io';

// TODO: Определите здесь ваше перечисление TrafficLight

// TODO: Создайте здесь вашу функцию getDriverAction

// TODO: Создайте здесь вашу функцию getWaitTime

void main() {
  // TODO: Напишите ваш код ниже
  
  // Создайте переменные перекрестка
  
  // Выведите статус для каждого перекрестка
  
  // Обновите intersection1 и выведите обновленный статус
  
  // Выведите сводку
}

Все уроки раздела Логика и управление потоком