c语言现在正在下雨吗,用C语言模拟下雨
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
用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语言模拟下雨相关推荐
- C语言程序设计今天下雨了吗,C语言编程模拟下雨by张田浩
<C语言编程模拟下雨by张田浩>由会员分享,可在线阅读,更多相关<C语言编程模拟下雨by张田浩(11页珍藏版)>请在人人文库网上搜索. 1.程序设计实习报告题目:模拟下雨学院: ...
- C语言程序设计今天下雨了吗,C语言编程模拟下雨by张田浩.doc
实用文档 标准 程序设计实习报告 题目: 模拟下雨 学院: 计算机与通信工程学院 专业: 计算机科学与技术 班级: 计算1402 姓名: 张田浩 学号:1407010220 一.需求分析 1.本程序要 ...
- C++语言学习(十二)——C++语言常见函数调用约定
C++语言学习(十二)--C++语言常见函数调用约定 一.C++语言函数调用约定简介 C /C++开发中,程序编译没有问题,但链接的时候报告函数不存在,或程序编译和链接都没有错误,但只要调用库中的函数 ...
- c语言exit在哪个头文件_C语言函数执行成功时,返回1和返回0,究竟哪个好?
基本上,没有人会将大段的C语言代码全部塞入 main() 函数,更好的做法是按照复用率高,耦合性低的原则,尽可能的将代码拆分不同的功能模块,并封装成函数.C语言代码的组合千变万化,因此函数的功能可能会 ...
- c语言程序与设计苏小红,c语言程序设计苏小红
<实验教学示范中心建设教材·国家精品课程主讲教材:C语言程序设计(第2版)>是一本兼具趣味性和实用性的C语言程序设计教材.全书由13章组成,内容包括:为什么要学C语言,C数据类型,简单的算 ...
- char类型怎么输入 c语言_还没搞懂C语言指针?这里有最详细的纯干货讲解(附代码)...
21ic综合自网络信息 指针对于C来说太重要.然而,想要全面理解指针,除了要对C语言有熟练的掌握外,还要有计算机硬件以及操作系统等方方面面的基本知识.所以本文尽可能的通过一篇文章完全讲解指针. 为什么 ...
- 英语是缺乏AOP的语言,汉语是具备AOP的语言。
今天在看spring的网站的时候,突然意识到汉语里面有AOP的影子. 英文表达被动语态的时候用过去分词,一般是加ed,但是大量的特殊形式,这样造成英文单词的记忆量大增.相反汉语没有这个问题,被动语态就 ...
- C语言字符糊到了一起,C语言速成及格课.docx
C语言速成及格课.docx 目录:1. C语言概要 2.变量 3.计算 4.判断 5.循环 6.函数 7.数组 8.指针 9.字符(串)附录1:学习C语言的方法.附录2:编程的一些技巧.附录3:使用电 ...
- c语言实验七 函数实验报告,C语言实验七函数实验报告.doc
C语言实验七函数实验报告 C语言程序设计 实 验 报 告 实验题目 实验七 函数 实验目的 掌握函数定义的方法: 掌握函数实参与形参的对应关系,以及值传递的方式. 掌握函数的嵌套调用和递归调用的方法: ...
最新文章
- 如何用计算机玩出花样,PPT图片玩出新花样
- Eclipse插件安装的三种方法
- 高仿腾讯QQ Xplan(X计划)的H5页面(2):动画控制
- 教你认清MVC,MVP和MVVM
- redis安装 linux步骤,【linux安装redis完整步骤】
- 4、CSS 高级语法
- Android onSaveInstanceState、onRestoreInstanceState保存数据
- oracle定时器在项目中的应用
- 程序语言中基本数值类型的分类
- drupalchina--如何翻译及如何上传翻译的内容?
- 基于虚拟帐号的邮件系统extmail(1)
- 剖析 Vue.js 内部运行机制 (1)
- Python学习入门基础教程(learning Python)--5.6 Python读文件操作高级
- 简单的MQTT客户端工具
- windows下安装redis并设置开机自启动
- lv双肩包尺寸对照表_当红Monogram帆布LV双肩包尺寸究竟有多少?
- 第三章 程序的机器级表示
- 6.2、C++的内联函数、函数重载、局部变量和全局变量
- 数据结构与算法较好的视频
- 【无人机 学习笔记 1】无人机导航技术及其特点分析