日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

项目: 代码雨

發(fā)布時間:2025/3/20 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 项目: 代码雨 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

  • 一、項目描述和最終的效果展示
  • 二、靜態(tài)的代碼雨
  • 三、一場動態(tài)的代碼雨
  • 四、實現(xiàn)代碼雨動畫

一、項目描述和最終的效果展示

項目: 讓字符從上到下依次的下落,呈現(xiàn)出代碼雨。

最終效果圖如下所示:

二、靜態(tài)的代碼雨

代碼如下:

#include<graphics.h> #include<time.h> #include<conio.h>#define High 800//游戲畫面 #define Width 1000 #define CharSize 25//每個字符顯示的大小int main(void) {int highNum=High/CharSize;int widthNum=Width/CharSize;//CharRain存儲對應字符矩陣中需要輸出字符的ASCII碼int CharRain[Width/CharSize][High/CharSize];int CNum[Width/CharSize];//每一列的有效字符個數(shù)int i,j,x,y;srand((unsigned)time(NULL));//設置隨機函數(shù)種子for(i=0;i<widthNum;i++)//初始化字符矩陣{CNum[i]=(rand()%(highNum*9/10))+highNum/10;//這一列的有效字符個數(shù)for(j=0;j<CNum[i];j++)CharRain[j][i]=(rand()%26)+65;//產(chǎn)生A~Z的隨機字符}initgraph(Width,High);BeginBatchDraw();setfont(25,10,"Courier");//設置字體setcolor(GREEN);for(i=0;i<widthNum;i++)//輸出整個字符矩陣{x=i*CharSize;//當前字符的x坐標for(j=0;j<CNum[i];j++){y=j*CharSize;//當前字符的y坐標outtextxy(x,y,CharRain[j][i]);//輸出當前字符}}FlushBatchDraw();EndBatchDraw();getch();closegraph();return 0; }

效果圖如下:

三、一場動態(tài)的代碼雨

代碼如下:

#include<graphics.h> #include<time.h> #include<conio.h>#define High 800//游戲畫面 #define Width 1000 #define CharSize 25//每個字符顯示的大小int main(void) {int highNum=High/CharSize;int widthNum=Width/CharSize;//CharRain存儲對應字符矩陣中需要輸出字符的ASCII碼int CharRain[Width/CharSize][High/CharSize];int CNum[Width/CharSize];//每一列的有效字符個數(shù)int i,j,x,y;srand((unsigned)time(NULL));//設置隨機函數(shù)種子for(i=0;i<widthNum;i++)//初始化字符矩陣{CNum[i]=(rand()%(highNum*9/10))+highNum/10;//這一列的有效字符個數(shù)for(j=0;j<CNum[i];j++)CharRain[j][i]=(rand()%26)+65;//產(chǎn)生A~Z的隨機字符}initgraph(Width,High);BeginBatchDraw();setfont(25,10,"Courier");//設置字體setcolor(RGB(0,255,0));while(1){for(i=0;i<widthNum;i++){if(CNum[i]<highNum-1)//當這一列字符沒有填滿時{for(j=CNum[i]-1;j>=0;j--)//每個字符向下移動一格{CharRain[j+1][i]=CharRain[j][i];}CharRain[0][i]=(rand()%26)+65;//最上一格再重新隨機的產(chǎn)生一個字符CNum[i]=CNum[i]+1;//這一列的字符數(shù)加1}}for(i=0;i<widthNum;i++)//輸出整個字符矩陣{x=i*CharSize;//當前字符的x坐標for(j=0;j<CNum[i];j++){y=j*CharSize;//當前字符的y坐標outtextxy(x,y,CharRain[j][i]);//輸出當前字符}}FlushBatchDraw();Sleep(200);clearrectangle(0,0,Width-1,High-1);//清空畫面}EndBatchDraw();getch();closegraph();return 0; }

效果圖如下:

四、實現(xiàn)代碼雨動畫

代碼如下:

#include<graphics.h> #include<time.h> #include<conio.h>#define High 800//游戲畫面 #define Width 1000 #define CharSize 25//每個字符顯示的大小int main(void) {int highNum=High/CharSize;int widthNum=Width/CharSize;//CharRain存儲對應字符矩陣中需要輸出字符的ASCII碼int CharRain[Width/CharSize][High/CharSize];int CNum[Width/CharSize];//每一列的有效字符個數(shù)int ColorG[Width/CharSize];//每一列字符的顏色int i,j,x,y;srand((unsigned)time(NULL));//設置隨機函數(shù)種子for(i=0;i<widthNum;i++)//初始化字符矩陣{CNum[i]=(rand()%(highNum*9/10))+highNum/10;//這一列的有效字符個數(shù)ColorG[i]=255;for(j=0;j<CNum[i];j++)CharRain[j][i]=(rand()%26)+65;//產(chǎn)生A~Z的隨機字符}initgraph(Width,High);BeginBatchDraw();setfont(25,10,"Courier");//設置字體while(1){for(i=0;i<widthNum;i++){if(CNum[i]<highNum-1)//當這一列字符沒有填滿時{for(j=CNum[i]-1;j>=0;j--)//每個字符向下移動一格{CharRain[j+1][i]=CharRain[j][i];}CharRain[0][i]=(rand()%26)+65;//最上一格再重新隨機的產(chǎn)生一個字符CNum[i]=CNum[i]+1;//這一列的字符數(shù)加1}else{if(ColorG[i]>40)ColorG[i]=ColorG[i]-20;//讓滿的這一列逐漸變暗else{CNum[i]=(rand()%(highNum/3))+highNum/10;//這一列字符的個數(shù)ColorG[i]=(rand()%75)+180;//這一列字符的顏色for(j=0;j<CNum[i];j++)//重新初始化這一列字符{CharRain[j][i]=(rand()%26)+65;}}}}for(i=0;i<widthNum;i++)//輸出整個字符矩陣{x=i*CharSize;//當前字符的x坐標for(j=0;j<CNum[i];j++){y=j*CharSize;//當前字符的y坐標setcolor(RGB(0,ColorG[i],0));outtextxy(x,y,CharRain[j][i]);//輸出當前字符}}FlushBatchDraw();Sleep(100);clearrectangle(0,0,Width-1,High-1);//清空畫面}EndBatchDraw();getch();closegraph();return 0; }

效果圖如下:

總結

以上是生活随笔為你收集整理的项目: 代码雨的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。