零基础入门C/C++实现你的浪漫表白:浪漫流星雨表白程序
想要讨女朋友欢心也巩固自己所学的知识,各位小伙伴有自己的想法了吗?准备好想要怎样实施了吗?有什么美好的计划了吗?如果没有的话那么别慌,我知道,在座的各位肯定都是有自己的心仪的姑娘,那么今天就教大家一招,做一个表白程序去进行表白,别等了,赶紧打开你的IED,跟着代码敲起来,不然的话,喜欢的人都跟别人跑了!
直接源码分享:
c
#include<stdio.h>
#include<graphics.h> //图形库:easyX201905
#include<conio.h>
#include<time.h>
#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语言编程基础
http://www.makeru.com.cn/live/1758_311.html?s=45051
夯实C语言,从小白到大牛的进阶之路!
http://www.makeru.com.cn/live/5413_1980.html?s=45051
自学的难度很大,如果你想更快提升自己的编程能力和编写项目的水平,欢迎一起共同成长!
点击链接加入群聊【嵌入式单片机Linux C交流群②】:【715272998 [点这里进入]】
有一些源码和资料分享,欢迎转行也学习编程的伙伴,和大家一起交流成长会比自己琢磨更快哦!
零基础入门C/C++实现你的浪漫表白:浪漫流星雨表白程序的更多相关文章
- 从零基础入门JavaScript(1)
从零基础入门JavaScript(1) 1.1 Javascript的简史 1995年的时候 由网景公司开发的,当时的名字叫livescript 为了推广自己的livescript,搭了j ...
- 函数:我的地盘听我的 - 零基础入门学习Python019
函数:我的地盘听我的 让编程改变世界 Change the world by program 函数与过程 在小甲鱼另一个实践性超强的编程视频教学<零基础入门学习Delphi>中,我们谈到了 ...
- Cloudera Manager、CDH零基础入门、线路指导 http://www.aboutyun.com/thread-9219-1-1.html (出处: about云开发)
Cloudera Manager.CDH零基础入门.线路指导http://www.aboutyun.com/thread-9219-1-1.html(出处: about云开发) 问题导读:1.什么是c ...
- 【JAVA零基础入门系列】Day2 Java集成开发环境IDEA
开发环境搭建好之后,还需要一个集成开发环境也就是IDE来进行编程.这里推荐的IDE是IDEA,那个老掉牙的Eclipse还是先放一边吧,(手动滑稽). IDEA的下载地址:http://www.jet ...
- 【JAVA零基础入门系列】Day4 变量与常量
这一篇主要讲解Java中的变量,什么是变量,变量的作用以及如何声明,使用变量. 那么什么是变量?对于初学者而言,可以将变量理解为盒子,这些盒子可以用来存放数据,不同类型的数据需要放在对应类型的盒子里. ...
- 【JAVA零基础入门系列】Day5 Java中的运算符
运算符,顾名思义就是用于运算的符号,比如最简单的+-*/,这些运算符可以用来进行数学运算,举个最简单的栗子: 已知长方形的长为3cm,高为4cm,求长方形的面积. 好,我们先新建一个项目,命名为Rec ...
- 【JAVA零基础入门系列】Day6 Java字符串
字符串,是我们最常用的类型,每个用双引号来表示的串都是一个字符串.Java中的字符串是一个预定义的类,跟C++ 一样叫String,而不是Char数组.至于什么叫做类,暂时不做过多介绍,在之后的篇章中 ...
- 【JAVA零基础入门系列】Day8 Java的控制流程
什么是控制流程?简单来说就是控制程序运行逻辑的,因为程序一般而言不会直接一步运行到底,而是需要加上一些判断,一些循环等等.举个栗子,就好比你准备出门买个苹果,把这个过程当成程序的话,可能需要先判断一下 ...
- 【JAVA零基础入门系列】Day9 Java中的那个大数值
什么是大数值?用脚趾头想也知道,当然是"大"的数值(233).Java中有两个用于表示大数值的类,BigInteger和BigDecimal,那到底能表示多大的数值呢?理论上,可以 ...
- 【JAVA零基础入门系列】Day10 Java中的数组
什么是数组?顾名思义,就是数据的组合,把一些相同类型的数放到一组里去. 那为什么要用数组呢?比如需要统计全班同学的成绩的时候,如果给班上50个同学的成绩信息都命名一个变量进行存储,显然不方便,而且在做 ...
随机推荐
- Apollo 配置中心详细教程
一.简介 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性,适用于微服务配置管理 ...
- Django学习day14BBS项目开发1.0
每日测验 """ 1.简述auth模块功能 2.简述项目开发流程 3.简述bbs表设计 """ 内容回顾 auth模块 "&quo ...
- jenkins自动构建前端项目(window,vue)
我们把一个多人协作的vue前端项目发布服务器,一般要经过以下步骤: git更新最新的代码 构建项目 把构建后的代码上传到服务器 如果用jenkins来构建的话,只需要点击一次构建按钮,就可以自动完成以 ...
- sunny 内网穿透使用。
启动方法:
- 鸿蒙内核源码分析(线程概念篇) | 是谁在不停的折腾CPU? | 百篇博客分析OpenHarmony源码 | v21.06
百篇博客系列篇.本篇为: v21.xx 鸿蒙内核源码分析(线程概念篇) | 是谁在不断的折腾CPU | 51.c.h .o 任务管理相关篇为: v03.xx 鸿蒙内核源码分析(时钟任务篇) | 触发调 ...
- P4258-[WC2016]挑战NPC【带花树】
正题 题目链接:https://www.luogu.com.cn/problem/P4258 题目大意 给出\(n\)个球,\(m\)个篮筐,每个球都可以被放入一些特定的篮筐,每个球都要放,要求球的个 ...
- P7099-[yLOI2020]灼【数学期望,结论】
正题 题目链接:https://www.luogu.com.cn/problem/P7099 题目大意 给出\(n\)个坐标轴上的点,\(q\)次询问从某点出发每次等概率向左或者向右一格求到达某个给出 ...
- Python3模块调用你真的会吗?不懂就来看一看?
前言 学习Python自动化框架的时候,各种文件会相互之间的调用.刚学的时候是不是很头疼!有木有!!一步步告诉你如何调用文件里的类和方法. 经常会调用同目录下的文件还有跨文件的调用 调用同目录下文件A ...
- 05-IdentityServer4
前面我们认识了jwt的token颁发模式,其中的应用场景和部分缺陷已经很是了解了.有些场合并不适合jwt,特别是针对第三方进行使用时,比如我们使用qq或者微信登陆博客园或其他第三方应用时. Ids4的 ...
- ASP.NET Core 5.0 中读取Request中Body信息
ASP.NET Core 5.0 中读取Request中Body信息 记录一下如何读取Request中Body信息 public class ValuesController : Controller ...