C语言数字雨–90行代码

上图

前期准备:
因为我们用C语言写会用到图形库,所以需要进行环境的搭建;
我这里用的VS2019,先到官方下载一个EasyX.exe;
具体在我的文章"雷霆战机"叙述过

#include<stdio.h>
#include<time.h>
#include<Windows.h>
#include<graphics.h>
#define MAXSTRNUMBER 128 //最多出现多少串
#define MAXLONG 20 //字串最大长度
#define SPACE 15 //两个串之间的距离
#define X 1920 //屏幕横最大坐标
#define Y 1080  //屏幕最大纵坐标struct Posiation {int x, y;int speed;char str[MAXLONG];
}strNumber[MAXSTRNUMBER];char getRandChar() {char temp;int flag = rand() % 3;if (flag == 0) {return temp = rand() % 10 + '0';}else if (flag == 1) {return temp = rand() % 26 + 'a';}else if (flag == 2) {return temp = rand() % 26 + 'A';}
}
void initializationStr() {for (int i = 0; i < MAXSTRNUMBER;++i) {strNumber[i].x = i * SPACE;//初始化x坐标,随着i++,x坐标不断增大,最小为0,最大不超过XstrNumber[i].y = rand()%Y;//初始化y坐标,y是随机的,这也就意味着y可以出现任何地方,//只要保证y在Y范围内就行了strNumber[i].speed = rand() % 5 + 5;//速度随机在5-10之间;}for (int i = 0; i < MAXSTRNUMBER;++i) {for (int j = 0; j < MAXLONG;++j) {strNumber[i].str[j] = getRandChar();//随机对每一个串中的每一个元素赋值}}
}
void printXY() {cleardevice();//这里的strNumber.y- j * SPACE;即随着j++y值越来越小,所以,所有元素//都在某一x坐标上,然后紧随第一个元素,y坐标不同,排列在一起,就成一个串了;for (int i = 0; i < MAXSTRNUMBER;++i) {for (int j = 0; j < MAXLONG;++j) {outtextxy(strNumber[i].x, strNumber[i].y - j*SPACE, strNumber[i].str[j]);settextcolor(RGB(0,255 - j*13,0));}}
}
void changeXY() {//我们需要当每一次字串落下完毕以后,改变,重置其位置,否则,就只能看到一阵流星划过//然后就啥也没有了,所以当我们某一个字符串的尾部,到达最低端的时候,就重置//for (int i = 0; i < MAXSTRNUMBER;++i) {strNumber[i].y += strNumber[i].speed;//不断改变y坐标位置;if (strNumber[i].y - SPACE*MAXLONG > Y) {strNumber[i].y = 0;}}
}
void changeStr() {//我们还需要随机选择结构体中的随机数组中的随机某个元素进行随机改变for (int i = 0; i < MAXSTRNUMBER;++i) {strNumber[rand()%MAXSTRNUMBER].str[rand()%MAXLONG] = getRandChar();}
}
int main() {srand(GetTickCount());initgraph(X,Y);initializationStr();//sleep不建议使用,它是暂停了,整个程序20毫秒,而我们另一种方法,是局部暂停//那就是获取时间差,当差值>20的时候,就执行;DWORD time1, time2;time1 = time2 = GetTickCount();while (1) {BeginBatchDraw();printXY();   changeStr();if (time2 - time1 > 20) {        changeXY();time1 = time2;}time2 = GetTickCount();EndBatchDraw();}getchar();closegraph();return 0;
}

C语言数字雨--90行代码相关推荐

  1. 90行代码轻松实现!结合 Whisper + Stable-diffusion 的语音生成图像任务!

    本项目将 Whisper 与 Stable Diffusion 模型结合,可以直接完成语音生成图像的任务.用户可以语音输入一个短句,Whisper 会自动将语音转化为文本,接着,Stable Diff ...

  2. c语言程序2000行代码,C语言教务管理系统2000行代码

    <C语言教务管理系统2000行代码>由会员分享,可在线阅读,更多相关<C语言教务管理系统2000行代码(56页珍藏版)>请在读根文库上搜索. 1.C语言教务管理系统一.程序结构 ...

  3. 90行代码!大一学生自学编程,自创搜题网站,已在GitHub开源

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 大数据文摘出品 作者:Caleb 考试早已不是学生的"特权"了. ...

  4. 通过90行代码学会HTML5 WebSQL的4种基本操作

    Web SQL数据库API是一个独立的规范,在浏览器层面提供了本地对结构化数据的存储,已经被很多现代浏览器支持了. 我们通过一个简单的例子来了解下如何使用Web SQL API在浏览器端创建数据库表并 ...

  5. 软件工程c语言2000行代码,C语言教务管理系统(2000行代码)

    <C语言教务管理系统(2000行代码)>由会员分享,可在线阅读,更多相关<C语言教务管理系统(2000行代码)(56页珍藏版)>请在人人文库网上搜索. 1.C语言教务管理系统一 ...

  6. Python从入门到入土的90行代码

    文章目录 基础入门 菜鸟提升 基础晋级 高手之路 内置包库 奇技淫巧 基础入门 1 python 即在命令行输入python,进入Python的开发环境. 2 x = 1+2*3-4/5+6**2 加 ...

  7. HTML5游戏实战 2 90行代码实现捕鱼达人

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 捕鱼达人 ...

  8. HTML5游戏实战(2):90行代码实现捕鱼达人

    捕鱼达人是一款非常流行的游戏,几年里赚取了数以千万的收入,这里借用它来介绍一下用Gamebuilder+CanTK开发游戏的方法.其实赚钱的游戏未必技术就很难,今天我们就仅用90来行代码来实现这个游戏 ...

  9. onclick 源码_仿照React源码流程打造90行代码的Hooks

    作者:苏畅 转发链接:https://mp.weixin.qq.com/s/YLSD4IojDWTPlov_RQtVAA 前言 你可能已经看过其它简易的Hooks实现.那么本文和其它实现有什么区别呢? ...

  10. L1-005 考试座位号 (15分) C语言实现(18行代码AC!)

    立志用更少的代码做更高效的表达 每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考 ...

最新文章

  1. 51nod 1414 冰雕 思路:暴力模拟题
  2. el表达式 if 和 if else 的写法
  3. 为了梦想开始历练之清除浮动篇
  4. JS控制锚点打开新窗口
  5. opencv在vs2012下重编译详细教程——解决按f11进入不了源代码
  6. 爱克发胶片_GE AGFA 胶片
  7. C# 词典数据结构设计【附demo】
  8. pandasql库学习使用之在Python中执行SQL语句
  9. NVMe驱动学习记录-1
  10. 拆分器控件Splitcontainer
  11. 网站上传服务器及安装包,如何上传安装包到服务器
  12. paraview启动失败:failed to get wglChoosePixelFormatARB
  13. 中维云视通网络监控系统
  14. “构建可信社会,重塑商业共识体系”彩虹商链发布会将在辽宁举行
  15. python拼写检查_python 英语单词拼写检查算法
  16. HTML基础-02-文本格式化、引文(斜体、粗体、上/下标签、删除、插入、强调、加重、字号、预格式,缩写、文字方向、短引用、长引用、引证)
  17. python去除图片马赛克_python 检测图片是否有马赛克
  18. amd RX6800和rtx3070哪个好
  19. 基于Edman降解的蛋白质测序法的用途详解
  20. 2016年6月,我们毕业了~~~

热门文章

  1. Qt 5.9.6 下载及安装
  2. EHOME协议在低功耗场景下使用介绍
  3. 教你成为质量管理高手GJB
  4. QQ 音乐加密音乐文件格式转换并附加专辑图片教程
  5. 超全!0基础程序员从入门到工作(持续更新...)
  6. 2022年下半年深圳地区数据分析师认证(CPDA),[进入查看]
  7. 机器学习—数据挖掘之灰色预测算法
  8. 【转】目前为止最详细、最简单的亚马逊Kindle Fire破解ROOT方法教程(增加一键root方法)2011.12.19...
  9. CAD批量提取数值lisp插件_CAD批量获取文本坐标及内容
  10. 正态分布某一点的概率怎么算_正态分布的抽卡概率算法