Вход на сайт
Задачи для начинающих
5160 просмотров
Перейти к просмотру всей ветки
в ответ Murr 16.02.21 15:41
тебе еще накидают методик оценки/мотивации/стимулирования
Зачем? Этот аспект мне интересен меньше всего. А уж на форуме почти бессмыслен.
Меня больше интересует, как можно получить решение понятное начинающим, которое не будет "страшным".
Для светофора с кнопочкой такого пока не нахожу Без кнопочки еще как то можно.
Но опять таки, размещать всё в одном классе совершенно не хочется, так что хотя бы один простой класс добавить нужно.
В этом случае всё управление лампочками будет там. Это позволит убрать хотя бы ошибки переключения, когда горят красный и зелёный одновременно. И уж точно гарантировать что при включенном зеленом для авто не будет зеленого для пешеходов.
В этом случае приходим к довольно простой главной функции
private static void Main(string[] args) { CombinedTrafficLight trafficLight = new CombinedTrafficLight(); InitTraceState(); while (true) { trafficLight.DisableAutoTraffic(); trafficLight.EnablePedestrianTraffic(); Delay(RedLightTimeMs); TraceState(trafficLight); trafficLight.EnableLightSwitch(); trafficLight.DisablePedestrianTraffic(); Delay(YellowLightTimeMs); TraceState(trafficLight); trafficLight.EnableAutoTraffic(); Delay(GreenLightTimeMs); TraceState(trafficLight); trafficLight.EnableLightSwitch(); Delay(YellowLightTimeMs); TraceState(trafficLight); } }
результат получается таким
+------+-----+-----+ |Pdestr|Auto |Delay| | R G |R Y G| [s] | |------+-----+-----| | * |* |3.094| | * | * |1.015| | * | *|4.000| | * | * |1.016| | * |* |3.000| | * | * |1.016| | * | *|4.015| | * | * |1.016| | * |* |3.000|