Добрый день! Я могу помочь вам создать форму светофора и написать код для моделирования его работы.
Для создания формы светофора вы можете использовать элемент PictureBox из набора инструментов визуального интерфейса пользователя (Windows Forms) в C#. Создайте новую форму, добавьте на нее PictureBox и задайте его свойства: Width, Height и BackgroundImage (например, с изображением круга светофора). Вы можете также добавить на форму кнопку для имитации нажатия пешеходной кнопки.
Для моделирования работы светофора вы можете использовать таймеры. Создайте таймер, который будет имитировать время до смены сигнала светофора, например, на 5 секунд для зеленого света, 2 секунды для желтого и 3 секунды для красного.
Напишите код обработки нажатия кнопки пешехода. При нажатии на кнопку запустите таймер для желтого света. В обработчике таймера смените фон PictureBox на желтый или красный с желтым, и запустите следующий таймер для зеленого света. При срабатывании таймера для зеленого света смените фон на зеленый, и запустите следующий таймер для красного света. При срабатывании таймера для красного света смените фон на красный, и остановите все таймеры.
Вот пример кода для реализации этого функционала:
public partial class TrafficLightForm : Form
{
private Timer yellowTimer = new Timer();
private Timer greenTimer = new Timer();
private Timer redTimer = new Timer();
public TrafficLightForm()
{
InitializeComponent();
// Задаем интервалы таймеров
yellowTimer.Interval = 2000; // 2 секунды для желтого
greenTimer.Interval = 5000; // 5 секунд для зеленого
redTimer.Interval = 3000; // 3 секунды для красного
// Добавляем обработчики для каждого таймера
yellowTimer.Tick += YellowTimer_Tick;
greenTimer.Tick += GreenTimer_Tick;
redTimer.Tick += RedTimer_Tick;
}
private void ButtonPedestrian_Click(object sender, EventArgs e)
{
// Запускаем таймер для желтого света
yellowTimer.Start();
}
private void YellowTimer_Tick(object sender, EventArgs e)
{
// Меняем фон на желтый или красный с желтым
pictureBox.BackColor = Color.Yellow;
// Останавливаем таймер для желтого света и запускаем таймер для зел
yellowTimer.Stop();
greenTimer.Start();
}
private void GreenTimer_Tick(object sender, EventArgs e)
{
// Меняем фон на зеленый
pictureBox.BackColor = Color.Green;
// Останавливаем таймер для зеленого света и запускаем таймер для красного
greenTimer.Stop();
redTimer.Start();
}
private void RedTimer_Tick(object sender, EventArgs e)
{
// Меняем фон на красный
pictureBox.BackColor = Color.Red;
// Останавливаем все таймеры
redTimer.Stop();
yellowTimer.Stop();
greenTimer.Stop();
}
Это пример кода для создания формы светофора и моделирования его работы в C#. Конечно, вы можете изменить интервалы таймеров и использовать другие способы обработки событий для своих нужд.