想要讨女朋友欢心也巩固自己所学的知识,各位小伙伴有自己的想法了吗?准备好想要怎样实施了吗?有什么美好的计划了吗?如果没有的话那么别慌,我知道,在座的各位肯定都是有自己的心仪的姑娘,那么今天就教大家一招,做一个表白程序去进行表白,别等了,赶紧打开你的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++实现你的浪漫表白:浪漫流星雨表白程序的更多相关文章

  1. 从零基础入门JavaScript(1)

    从零基础入门JavaScript(1) 1.1  Javascript的简史 1995年的时候   由网景公司开发的,当时的名字叫livescript    为了推广自己的livescript,搭了j ...

  2. 函数:我的地盘听我的 - 零基础入门学习Python019

    函数:我的地盘听我的 让编程改变世界 Change the world by program 函数与过程 在小甲鱼另一个实践性超强的编程视频教学<零基础入门学习Delphi>中,我们谈到了 ...

  3. 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 ...

  4. 【JAVA零基础入门系列】Day2 Java集成开发环境IDEA

    开发环境搭建好之后,还需要一个集成开发环境也就是IDE来进行编程.这里推荐的IDE是IDEA,那个老掉牙的Eclipse还是先放一边吧,(手动滑稽). IDEA的下载地址:http://www.jet ...

  5. 【JAVA零基础入门系列】Day4 变量与常量

    这一篇主要讲解Java中的变量,什么是变量,变量的作用以及如何声明,使用变量. 那么什么是变量?对于初学者而言,可以将变量理解为盒子,这些盒子可以用来存放数据,不同类型的数据需要放在对应类型的盒子里. ...

  6. 【JAVA零基础入门系列】Day5 Java中的运算符

    运算符,顾名思义就是用于运算的符号,比如最简单的+-*/,这些运算符可以用来进行数学运算,举个最简单的栗子: 已知长方形的长为3cm,高为4cm,求长方形的面积. 好,我们先新建一个项目,命名为Rec ...

  7. 【JAVA零基础入门系列】Day6 Java字符串

    字符串,是我们最常用的类型,每个用双引号来表示的串都是一个字符串.Java中的字符串是一个预定义的类,跟C++ 一样叫String,而不是Char数组.至于什么叫做类,暂时不做过多介绍,在之后的篇章中 ...

  8. 【JAVA零基础入门系列】Day8 Java的控制流程

    什么是控制流程?简单来说就是控制程序运行逻辑的,因为程序一般而言不会直接一步运行到底,而是需要加上一些判断,一些循环等等.举个栗子,就好比你准备出门买个苹果,把这个过程当成程序的话,可能需要先判断一下 ...

  9. 【JAVA零基础入门系列】Day9 Java中的那个大数值

    什么是大数值?用脚趾头想也知道,当然是"大"的数值(233).Java中有两个用于表示大数值的类,BigInteger和BigDecimal,那到底能表示多大的数值呢?理论上,可以 ...

  10. 【JAVA零基础入门系列】Day10 Java中的数组

    什么是数组?顾名思义,就是数据的组合,把一些相同类型的数放到一组里去. 那为什么要用数组呢?比如需要统计全班同学的成绩的时候,如果给班上50个同学的成绩信息都命名一个变量进行存储,显然不方便,而且在做 ...

随机推荐

  1. BeanFactory和ApplicationContext对比

    一.BeanFactory和ApplicationContext对比 其中,ApplicationContext容器即时加载,就是一加载配置文件,就会创建对象,且自动装配bean(即写道xml中bea ...

  2. 6步快速配置Tomcat环境变量(Win10)

    一.配置 tomcat环境变量之前先安装jdk和配置jdk的环境变量 1.首先右击我的电脑(此电脑),点击属性,或者也可以从控制面板上打开,如下图,找到系统点击高级系统设置: 2.然后进入系统属性界面 ...

  3. angularjs $http.get 和 $http.post 传递参数

    $http.get请求数据的格式 $http.get(URL,{ params: { "id":id } }) .success(function(response, status ...

  4. 使用fiddler抓包模拟器及配置fiddler过滤

    一. 安装fiddler https://www.telerik.com/fiddler 二. 配置fiddler,一下的ip要根据自己电脑情况设置 然后重启Fiddler,一定要重启!!! 三.配置 ...

  5. 深入剖析RocketMQ源码-NameServer

    一.RocketMQ架构简介 1.1 逻辑部署图 (图片来自网络) 1.2 核心组件说明 通过上图可以看到,RocketMQ的核心组件主要包括4个,分别是NameServer.Broker.Produ ...

  6. Java面向对象系列(3)- 回顾方法的调用

    方法的调用 静态方法 非静态方法 形参和实参 值传递和引用传递 this关键字(继承篇讲解) 静态方法 非静态方法 形参和实参 package oop.demo01; public class Dem ...

  7. navicat导出DDL语句

    工作中有的时候需要将某个库中的表.视图.函数.存储过程等创建语句导出,又不需要表中的数据. 方法一:需要拷贝的创建语句条数不多,可以选择直接拷贝DDL语句 方法二:使用Navicat的备份功能

  8. AVS 端能力之蓝牙模块

    该类为蓝牙端能力处理类,主要负责蓝牙设备配对和蓝牙音频播放功能. 功能简介 实现蓝牙设备的启动发现模式.扫描蓝牙设备.建立蓝牙连接功能 实现蓝牙设备音频播放.停止.上一首.下一首功能 其它细节参考&l ...

  9. iGuard6.0 — 各适其用的网站防护体系

    ​随着互联网新技术的涌现,网站的架构技术和涉及的资源也日益多样且复杂化.这对网站各类资源的防护工作也提出了更高的挑战和更细粒度的需求. 我们经常碰到的用户真实需求包括: 我的 CMS 制作系统,会不会 ...

  10. 测试开发【提测平台】分享11-Python实现邮件发送的两种方法实践

    微信搜索[大奇测试开],关注这个坚持分享测试开发干货的家伙. 按照开发安排,本篇本应该是关于提测页面的搜索和显示实现,怕相似内容疲劳,这期改下内容顺序,将邮件服务的相关的提前,在之前的产品需求和原型中 ...