明天就七夕节了,各位学习编程的小可爱们,有什么美好的计划了吗?约好了自己心仪的姑娘吗?什么!不要告我说明天你准备宅家看动漫!

别慌,我知道,在座的各位肯定都是有自己的心仪的姑娘,那么今天就教大家一招,做一个表白程序去进行表白,别等了,赶紧打开你的VS2013,跟着代码敲起来,不然的话,喜欢的人都跟别人跑了!

直接源码分享:

#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/C++编程难度很大,如果你想更快提升自己的编程能力和编写项目的水平,欢迎一起共同成长!

C语言C++编程学习交流圈子,Q群【757874045点击进入微信公众号:C语言编程学习基地

有一些源码和资料分享,欢迎转行也学习编程的伙伴,和大家一起交流成长会比自己琢磨更快哦!

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/112Q/p/13556528.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!