零基礎入門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 [點這里進入]

有一些源碼和資料分享,歡迎轉行也學習編程的伙伴,和大家一起交流成長會比自己琢磨更快哦!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM