Напишите объект светофор с методами toRed
, toGreen
, toYellow
и state
.
Методы to\*
переводят светофор в определённое состояние.
Метод state
возвращает состояние светофора.
Для задания интервалом горения цветов используется конфиг произвольного формата.
Светофор должен подписаться на событие tram
, которое говорит о том, что не раньше чем через 3000 мс подъедет трамвай и необходимо к этому времени переключить светофор на зеленый.
При приближении трамвая светофор должен гореть зеленым не менее 10000 мс, чтобы трамвай успел проехать.
После проезда трамвая необходимо вернуть светофор обратно в исходное состояние.
Бонусные задания:
- Вернуть светофор в исходное состояние так, как будто бы трамвай не проезжал
- Адекватный возврат в исходное состояние: например, если исходное состояние было "красный" и осталось гореть 5 секунд, то возвращаться в него не стоит