C/C++编程笔记:浪漫流星雨表白装b程序
作为一个未来可能会成为一个专业程序员的小伙们,不知道你们现在学到哪里了,学了点东西之后有没有想在你女朋友面前装个大大的b呢,今天小编就给你一个机会来研究一下下边的代码吧,保证大写的N,当然大佬是排除在外的!
直接源码分享:
#include
#include //图形库:easyX201905
#include
#include
#define MAXSTAR 1314
#define MAXMETEOR 520
//结构体
//几个星星:1000
struct Star
{
int x, y;
int color;
int step;
}star[MAXSTAR];
//流星结构
struct Meteor
{
int x, y;
int style;
int step;
}meteor[MAXMETEOR];
IMAGE img1, img2;//1.定义图片变量
void printText()
{
//设置文字颜色
settextcolor(RGB(255, 0, 255));//三原色:红,绿,蓝
//调整字体大小
settextstyle(50, 0, "华文行楷");
//你的文采:发到公屏上
/*
海底月是天上月,眼前人是心上人
春分十里,我喜欢你
终是庄周圆了梦
这是我的手背,这是我的脚背,你是我的宝贝。
一粥一饭/不及你/颦颦一笑
问君能有几多愁?家人未入眼帘人消瘦
我喜欢你,像风走了八万里,不问归期
白酒清欢无别事,我在等风也在等你
就承认一笑倾城一见自难忘
问君能有几多愁?佳人未入眼帘人消瘦
ABCDEFGHIJKLMNOPQRSTVWXYZ
*/
//在指定位置输出字符串
outtextxy(450, 20, "七夕到了,炮姐我喜欢你");
//设置文字颜色
settextcolor(RGB(0, 255, 255));//三原色:红,绿,蓝
//调整字体大小
settextstyle(40, 0, "华文行楷");
outtextxy(200, 100, "终是庄周圆了梦");
outtextxy(200, 150, "春分十里,我喜欢你");
outtextxy(200, 200, "一粥一饭不及你颦颦一笑");
outtextxy(200, 250, "就承认一笑倾城一见自难忘");
outtextxy(200, 300, "海底月是天上月,眼前人是心上人");
outtextxy(200, 350, "白酒清欢无别事,我在等风也在等你");
outtextxy(200, 400, "ABCDEFGHIJKLMNOPQRSTVWXYZ");
outtextxy(200, 450, " 我喜欢你,像风走了八万里,不问归期");
outtextxy(200, 500, "问君能有几多愁?佳人未入眼帘人消瘦");
outtextxy(200, 550, "这是我的手背,这是我的脚背,你是我的宝贝。");
outtextxy(300, 600, "----------------------------------爱你的艺辰");
_getch();//按键
}
//放大招:流星雨
//初始化星星
void initStar(int i)
{
//随机产生坐标,颜色,速度
star[i].x = rand() % 1200;
star[i].y = rand() % 800;
star[i].color = RGB(rand() % 256, rand() % 256, rand() % 256);
star[i].step = rand() % 10;
}
//画星星
void drawStar(int i)
{
//画像素点:在初始化星星的坐标
putpixel(star[i].x, star[i].y, star[i].color);
//移动星星:给它速度
star[i].x += star[i].step;
//跑到窗口外面的星星:初始化
if (star[i].x >= 1200)
{
putpixel(star[i].x, star[i].y, star[i].color);
initStar(i);
}
}
//流星
//初始化流星
void initMeteor(int i)
{
meteor[i].x = rand()%2200-1000;//[-1200,1199]
meteor[i].y = rand()%20-200;
meteor[i].style = rand() % 2; //0,1
meteor[i].step = rand() % 30 + 1;//+3 :流星的速度不为0
}
//画流星:贴图技术
void drawMeteor(int i)
{
//3.贴图:显示图片
for (i = 0; i < MAXMETEOR; i++)
{
switch (meteor[i].style)
{
case 0:
putimage(meteor[i].x, meteor[i].y, &img1,SRCPAINT);
break;
case 1:
putimage(meteor[i].x, meteor[i].y, &img2, SRCPAINT);
break;
}
}
}
//移动流星
void moveMeteor(int i)
{
for (i = 0; i < MAXMETEOR; i++)
{
meteor[i].x += meteor[i].step;
meteor[i].y += meteor[i].step;
if (meteor[i].x >= 1200 || meteor[i].y >= 800)
{
initMeteor(i);
}
}
}
int main()
{
//2.加载图片
loadimage(&img1, "1.jpg", 50, 50);
loadimage(&img2, "2.jpg", 50, 50);
//界面:初始化图形环境宽度,高度
initgraph(1200, 800);
//随机函数种子:如果不播种:随机出来的是伪随机
srand((unsigned int)time(NULL));
printText();
int i = 0;
for ( i = 0; i < MAXSTAR; i++)
{
initStar(i);
}
for (i = 0; i < MAXMETEOR; i++)
{
initMeteor(i);
}
drawMeteor(i);
while (1)
{
BeginBatchDraw();
cleardevice();
for (i = 0; i < MAXSTAR; i++)
{
drawStar(i);
}
drawMeteor(i);
moveMeteor(i);
Sleep(100);
EndBatchDraw();
}
while (1); //卡屏 _getch()函数
closegraph();//关闭图形环境
return 0;
}
代码都给你们了,还在等什么呢?GOGOGO!
自学C/C++编程难度很大,如果你想更快提升自己的编程能力和编写项目的水平,欢迎一起共同成长!
C语言C++编程学习交流圈子,Q群【928550752】
有一些源码和资料分享,欢迎转行也学习编程的伙伴,和大家一起交流成长会比自己琢磨更快哦!
提升C编程能力
http://www.makeru.com.cn/live/1392_1166.html?s=45051
夯实C语言,从小白到大牛的进阶之路!
http://www.makeru.com.cn/live/5413_1980.html?s=45051
指针
http://www.makeru.com.cn/live/1392_238.html?s=45051
指针换装你还认识吗
http://www.makeru.com.cn/live/5413_2043.html?s=45051
C语言控制led灯
http://www.makeru.com.cn/live/1392_304.html?s=45051
C/C++编程笔记:浪漫流星雨表白装b程序的更多相关文章
- storysnail的Linux串口编程笔记
storysnail的Linux串口编程笔记 作者 He YiJun – storysnail<at>gmail.com 团队 ls 版权 转载请保留本声明! 本文档包含的原创代码根据Ge ...
- Shell编程笔记
Shell编程笔记与Windows下熟悉的批处理类似,也可以将一些重复性的命令操作写成一个脚本方便处理. 修改别人的脚本,运行后遇到个问题 setenv: command not found 查证 ...
- python核心编程--笔记
python核心编程--笔记 的解释器options: 1.1 –d 提供调试输出 1.2 –O 生成优化的字节码(生成.pyo文件) 1.3 –S 不导入site模块以在启动时查找pyt ...
- 数据结构(逻辑结构,物理结构,特点) C#多线程编程的同步也线程安全 C#多线程编程笔记 String 与 StringBuilder (StringBuffer) 数据结构与算法-初体验(极客专栏)
数据结构(逻辑结构,物理结构,特点) 一.数据的逻辑结构:指反映数据元素之间的逻辑关系的数据结构,其中的逻辑关系是指数据元素之间的前后件关系,而与他们在计算机中的存储位置无关.逻辑结构包括: 集合 数 ...
- Python编程笔记二进制、字符编码、数据类型
Python编程笔记二进制.字符编码.数据类型 一.二进制 bin() 在python中可以用bin()内置函数获取一个十进制的数的二进制 计算机容量单位 8bit = 1 bytes 字节,最小的存 ...
- java并发编程笔记(十一)——高并发处理思路和手段
java并发编程笔记(十一)--高并发处理思路和手段 扩容 垂直扩容(纵向扩展):提高系统部件能力 水平扩容(横向扩容):增加更多系统成员来实现 缓存 缓存特征 命中率:命中数/(命中数+没有命中数) ...
- 风变编程笔记(二)-Python爬虫精进
第0关 认识爬虫 1. 浏览器的工作原理首先,我们在浏览器输入网址(也可以叫URL),然后浏览器向服务器传达了我们想访问某个网页的需求,这个过程就叫做[请求]紧接着,服务器把你想要的网站数据发送给浏 ...
- C# 高效编程笔记2
C# 高效编程笔记2 1.理解GetHashCode()的陷阱 (1)作用:作为基于散列集合定义键的散列值,如:HashSet<T>,Dictionary<K,V>容器等 (2 ...
- C# 高效编程笔记1
C# 高效编程笔记1 1.使用属性而不是可访问的数据成员 (1).NET Framework中的数据绑定类仅支持属性,而不支持共有数据成员 (2)属性相比数据成员更容易修改 2.用运行时常量(read ...
随机推荐
- 中心对称数 II
中心对称数 II 1.题目描述 中心对称数是指一个数字在旋转了 180 度之后看起来依旧相同的数字(或者上下颠倒地看). 找到所有长度为 n 的中心对称数. 示例 : 输入: n = 2 输出: [& ...
- 【C++周报】第二期 2021-8-19
这次我们照样看一道题.个人认为比上一次的简单. https://vijos.org/p/1130 先说方法,动态规划,你能想到什么? "在它的左边加上一个自然数,但该自然数不能超过原数的一半 ...
- python循环以及控制语句
python流程 学习完本篇,你将会通过python完成以下题目 试利用break语句求解2-100之间的素数. (1)素数是指除了能被1和它本身整除外,不能被其它数所整除的数.判断一个自然数是否是素 ...
- ECSHOP产品内容页新增上传功能
第一步:在 admin\templates\goods_info.htm中 <span class="tab-back" id="article-tab" ...
- 配置阿里云maven
在安装好Maven之后,默认的~/.m2目录下是没有maven仓库配置文件settings.xml的,默认使用的是官方的仓库,访问速度会非常慢,我们需要配置下国内的仓库. 创建~/.m2/settin ...
- ggplot2 画图随笔
ggplot2 盒图+显著性线 compire <- list(c('1','2'),c('1','4')) ggplot(info,aes(x=cluster,y=value))+ stat_ ...
- Centos7创建swap分区
创建4g swap分区 dd if=/dev/zero of=/var/swap bs=1024 count=4194304 mkswap /var/swap 激活swap分区 swapon /var ...
- c++ 的学习 第二集函数的重载
1. 规则 函数名相同参数个数不同.参数类型不同.参数顺序不同 2. 注意 返回值类型与函数重载无关 调用函数时,实参的隐式类型转换可能会产生二义性 返回值类型与函数重载无关 什么意思? 返回 ...
- Nresource服务之接口缓存化
1. 背景 Nresource服务日均4.5亿流量,考虑到未来流量急增场景,我们打算对大流量接口进行缓存化处理:根据服务管理平台数据统计显示getUsableResoureCount接口调用量很大,接 ...
- CF183D-T-shirtx【dp,贪心】
正题 题目链接:https://www.luogu.com.cn/problem/CF183D 题目大意 \(n\)个人,\(m\)种衣服,给出每个人喜欢某件衣服的概率,你可以选择\(n\)件衣服带过 ...