C++红绿灯程序

EasyX 文档 - 使用教程

C语言中的conio.h文件

clock()函数

这个文章主要是记录对C++红绿灯程序的学习,代码部分是学习的代码骑士博主的,之前一直想学对红绿灯程序的编写,拖了好久,很感谢代码骑士博主的分享,让我浅浅地入门。大致分析一下这个红绿灯小程序。

绘图窗口大小的设置

    initgraph(640, 480); // 创建绘图窗口,大小为 640x480 像素  

设置当前设备绘图背景色

    setbkcolor(WHITE); //设置背景色

使用当前背景色,清空绘图设备

    cleardevice(); //使用当前背景色,并清空设备

        在setbkcolor设置背景色之后,并不会改变现有背景色,而是只改变背景色的值,之后再执行绘图语句,例如 outtextxy,会使用新设置的背景色值。如果需要修改全部背景色,可以在设置背景色后执行 cleardevice() 函数。

设置当前设备填充颜色

    setfillcolor(BLACK);

绘制画有边框的填充矩形

    fillrectangle(220,30,380,420);
    fillrectangle(280,420,320,490);
#include<graphics.h>
#include<conio.h>
#include<iostream>
#include<time.h>
using namespace std;

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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值