日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言现在正在下雨吗,用C语言模拟下雨

發(fā)布時間:2025/3/20 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言现在正在下雨吗,用C语言模拟下雨 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

該樓層疑似違規(guī)已被系統(tǒng)折疊?隱藏此樓查看此樓

用C語言模擬下雨

#include?

#include?

#include?

#include?

#include?

#include?

#define?LEN?sizeof(struct?rainDrop)

int?rainDropNumber=60;

int?downSpeed=20;

struct?rainDrop?*head;

struct?rainCircle

{

int?x;

int?y;

int?r;

int?curR;

int?rainCircleStep;

};

struct?rainDrop

{

int?startX;

int?startY;

int?endY;

int?curX;

int?curY;

int?rainColor;

int?rainLineStep;

int?rainLineLength;

int?status;

struct?rainCircle?water;

struct?rainDrop?*next;

};

void?initgraphics(void)

{

int?gmode,gdriver;

gdriver=DETECT;

initgraph(&gdriver,&gmode,"");

}

struct?rainDrop?*creatDrop(void)

{

struct?rainDrop?*p;

p=(struct?rainDrop?*)malloc(LEN);

p->startX=rand()%640;

p->startY=rand()%430;

p->endY=430+rand()%50;

p->curX=p->startX;

p->curY=p->startY;

p->rainLineStep=8;

p->rainColor=rand()%15+1;

p->rainLineLength=rand()%10+10;

p->status=0;

p->water.x=p->startX;

p->water.y=p->endY;

p->water.r=rand()%40;

p->water.curR=rand()%2;

p->water.rainCircleStep=rand()%2+1;

p->next=NULL;

return(p);

}

void?recreatDrop(struct?rainDrop?*p)

{

p->startX=rand()%640;

p->startY=rand()%430;

p->endY=430+rand()%50;

p->curX=p->startX;

p->curY=p->startY;

p->rainLineStep=8;

p->rainColor=rand()%15+1;

p->rainLineLength=rand()%10+10;

p->status=0;

p->water.x=p->startX;

p->water.y=p->endY;

p->water.r=rand()%40;

p->water.curR=rand()%2;

p->water.rainCircleStep=rand()%2+1;

}

void?creatRain(void)

{

struct?rainDrop?*p1,*p2;

int?i;

p1=p2=creatDrop();

head=p1;

for(i=0;i

{

p2=creatDrop();

p1->next=p2;

p1=p2;

}

}

void?updateRainLineData(struct?rainDrop?*p)

{

if(p->rainLineStep%5==0)

p->rainLineStep++;

p->curY+=p->rainLineStep;

p->startY=p->curY-p->rainLineLength;

}

void?drawRainLine(struct?rainDrop?*p)

{

setcolor(p->rainColor);

line(p->startX,p->startY,p->curX,p->curY);

}

void?clearRainLine(struct?rainDrop?*p)

{

setcolor(BLACK);

line(p->startX,p->startY,p->curX,p->curY);

}

void?rainDropDown(struct?rainDrop?*p)

{

if(p->curY>=p->endY)

{

clearRainLine(p);

p->status=1;

}

else

{

clearRainLine(p);

updateRainLineData(p);

drawRainLine(p);

}

}

void?updateRainCircleData(struct?rainDrop?*p)

{

p->water.curR+=p->water.rainCircleStep;

}

void?drawRainCircle(struct?rainDrop?*p)

{

setcolor(p->rainColor);

circle(p->water.x,p->water.y,p->water.curR);

}

void?clearRainCircle(struct?rainDrop?*p)

{

setcolor(BLACK);

circle(p->water.x,p->water.y,p->water.curR);

}

void?fallToWater(struct?rainDrop?*p)

{

if(p->water.curR>=p->water.r)

{

clearRainCircle(p);

recreatDrop(p);

}

else

{

clearRainCircle(p);

updateRainCircleData(p);

drawRainCircle(p);

}

}

void?rain(void)

{

struct?rainDrop?*p;

p=head;

while(!kbhit())

{

if(p==NULL)

p=head;

else

{

if(p->status==0)

rainDropDown(p);

else

fallToWater(p);

}

delay(downSpeed);

p=p->next;

}

}

void?clearAll(void)

{

struct?rainDrop?*p,*pf;

p=head;

while(p!=NULL)

{

pf=p;

p=p->next;

free(pf);

}

closegraph();

}

main()

{

printf("Input?rainDrop?Number:");

scanf("%d",&rainDropNumber);

printf("Input?down?speed:");

scanf("%d",&downSpeed);

randomize();

initgraphics();

creatRain();

rain();

clearAll();

}

總結

以上是生活随笔為你收集整理的c语言现在正在下雨吗,用C语言模拟下雨的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。