C++游戏编程--模拟红绿灯程序

该程序使用Microsoft Visual Studio 2022和EasyX库创建了一个简单的红绿灯模拟,展示了红绿灯三个阶段的切换效果。通过设置不同时间段,模拟红绿灯从红色到黄色再到绿色的过渡,循环进行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编译环境:Mictosoft Visual Studio 2022, EasyX_2021

作  者:代码骑士<1696297834@qq.com>

最后修改:2021-12-29

程序演示:

程序代码:

各位看官,喜欢本程序点个赞吧,创作不易,拒绝白嫖!

#include<graphics.h>
#include<conio.h>
#include<iostream>
#include<time.h>
using namespace std;
/// <summary>
/// 作品:红绿灯
/// 作者:代码骑士<1696297834@qq.com>
/// 编译环境:VS 2022,EasyX 2021
/// </summary>
/// <returns></returns>
int main()
{
	const int width = 640;

	const int height = 480;

	initgraph(width, height);//640是画布宽度,480是画布高度

	int x = 300, y = 100, r = 50, s = 20;

	setbkcolor(WHITE);

	cleardevice();

	setfillcolor(BLACK);

	fillrectangle(220, 30, 380, 420);

	fillrectangle(280, 420, 320, 490);

	clock_t start, now;

	while (1)
	{
		start = clock();

		float maxTime = 10;

		float remainTime = maxTime;

		while (remainTime >= 0)
		{
			now = clock();

			double duration = (double(now - start) / CLOCKS_PER_SEC);

			remainTime = maxTime - duration;

			if (remainTime <= 10 && remainTime >= 6)
			{
				//灯1
				setfillcolor(RED);
				fillcircle(x, y, r);
				//灯2
				setfillcolor(GREEN);
				fillcircle(x, y + s + 2 * r, r);
				//灯3
				setfillcolor(YELLOW);
				fillcircle(x, y + 2 * s + 4 * r, r);
			}
			else if (remainTime < 6 && remainTime >= 3)
			{
				setfillcolor(YELLOW);
				fillcircle(x, y, r);

				setfillcolor(RED);
				fillcircle(x, y + s + 2 * r, r);

				setfillcolor(GREEN);
				fillcircle(x, y + 2 * s + 4 * r, r);
			}
			else if (remainTime < 3 && remainTime >= 1)
			{
				setfillcolor(GREEN);
				fillcircle(x, y, r);

				setfillcolor(YELLOW);
				fillcircle(x, y + s + 2 * r, r);

				setfillcolor(RED);
				fillcircle(x, y + 2 * s + 4 * r, r);

			}

		}
	}

	_getch();//暂停,等待键盘按键

	closegraph();//关闭当前画布

	return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码骑士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值