Задачи для начинающих
соответственно хотелось бы иметь что попроще.
А проще некуда. Да, в ответе многа букаффф. Но есть 2 вещи.
1. это состояние. Мы не меняем желтый на красный. Мы меняем состояние на состояние. Можно в тестовом примере выкинуть пешеходный светофор. Можно выкинуть кнопку. Но принцип останется
2. Это описание реальных обьектов классами. Что бы выкинуть пешеходный светофор, не нужно вылавливать его из огромного метода. Достаточно удалить или замочить класс. И само описание состояния соответствует реальным обьектам - в каждом классе инкапсулировано ровно то, что нужно.
Кроме того есть интересные вещи типа масштабируемости. Можно добавлять или удалять обьекты. Имхо на таком коде нужно учить новичков - что бы привыкали думать обьектами.
P.S.
респект Программисту. Я не пишу на С-шарп, но код абсолютно понятен и легко читаем.