Итоги — Светофор
Часть раздела Логика и управление потоком путешествия по Dart на Coddy — урок 62 из 65.
Задание
ЛегкоСоздайте комплексную систему управления светофорами, которая продемонстрирует ваше мастерство владения перечислениями (enums) и операторами switch. Ваша задача — построить систему, которая может обрабатывать несколько светофоров и предоставлять соответствующие действия для водителей.
- Определите перечисление с названием
TrafficLightс тремя значениями:red,yellowиgreen - Создайте функцию с названием
getDriverAction, которая принимает параметрTrafficLightи возвращает строку соответствующего действия, используя оператор switch:- Для
TrafficLight.red: вернуть"Stop" - Для
TrafficLight.yellow: вернуть"Caution" - Для
TrafficLight.green: вернуть"Go"
- Для
- Создайте функцию с названием
getWaitTime, которая принимает параметрTrafficLightи возвращает время ожидания в секундах, используя оператор switch:- Для
TrafficLight.red: вернуть30 - Для
TrafficLight.yellow: вернуть3 - Для
TrafficLight.green: вернуть25
- Для
- Создайте три переменные для представления различных перекрестков:
intersection1типаTrafficLightсо значениемTrafficLight.redintersection2типаTrafficLightсо значениемTrafficLight.yellowintersection3типаTrafficLightсо значениемTrafficLight.green
- Для каждого перекрестка выведите статус в следующем точном формате:
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
- Симитируйте смену последовательности сигналов светофора, обновив
intersection1наTrafficLight.green - Выведите обновленный статус:
Updated Intersection 1: Green light - Go - Wait time: 25 seconds - Создайте сводку, выведя:
Traffic system managing 3 intersections successfully
Ваша программа должна продемонстрировать мощь сочетания перечислений с операторами switch для создания типобезопасной и читаемой системы управления трафиком. Операторы switch должны обрабатывать все значения перечисления и возвращать именно те строки и числа, которые указаны выше.
Попробуйте сами
import 'dart:io';
// TODO: Определите здесь ваше перечисление TrafficLight
// TODO: Создайте здесь вашу функцию getDriverAction
// TODO: Создайте здесь вашу функцию getWaitTime
void main() {
// TODO: Напишите ваш код ниже
// Создайте переменные перекрестка
// Выведите статус для каждого перекрестка
// Обновите intersection1 и выведите обновленный статус
// Выведите сводку
}Все уроки раздела Логика и управление потоком
1Продвинутая работа со списками
Свойства списка: first и lastСостояние списка: isEmpty и isNotEmptyРазворот спискаДобавление в список: insertУдаление из списка: removeWhereПоиск в списке: indexOfСортировка спискаПеремешивание спискаИтоги — Органайзер списков4Продвинутая работа с Map
Итерация по MapПроверка ключей и значенийСвойства Map: keys и valuesУсловное добавление: putIfAbsentУдаление записей из MapВложенные MapИтоги — Обновление инвентаря2Функциональные операции со списками
Преобразование с помощью 'map'Фильтрация с помощью 'where'Использование '.toList()'Проверка условий с помощью 'any'Условия с 'every'Поиск с помощью 'firstWhere'Повторение — фильтрация данных5Проект: Калькулятор корзины
Настройка проектаДобавление товаров в корзину3Множества
Что такое множество?Создание множестваДобавление и удаление элементовПроверка наличия элементов в множествеПреобразование списка в множествоОбъединение множествПересечение множествРазность множествИтоги: уникальный список гостей6Основы обработки ошибок
Что такое исключения?Блок 'try-catch'Перехват исключений с помощью 'on'Блок 'finally'Генерация исключенияИтоги: Безопасное деление9Перечисления (Enums)
Что такое Enums?Определение простого EnumИспользование Enums в переменныхEnums в операторах 'switch'Итоги — Светофор