520表白程序(C++)
520表白程序(C++)
菜鸟奉献你一个520表白神器爱情总是那么神圣,烂漫,每个人都会有无限的向往,即便是程序员(自我笑下),忽然我想起周星驰的那些话“曾经有一段爱情摆在我面前。
我希望是一万年”,于是我试着做了表白程序。
实现原理:原理比较的简单,主要是运用windows API来实现,程序初步实现的功能是显示文字,图像,歌曲(重复),燃放烟花(循环),程序的实现过程大概可以描述为烟花燃放的一个过程(初始化,上升,爆炸,循环),具体实现方法不再复述了,代码比较简单。
工具:VS2013 Eaxy(冬至版)[使用TC库,不是VC库,用Eaxy]主要代码:#include "graphics.h"#include <conio.h>#include <math.h>#include <time.h>#include <stdio.h>#include <Mmsystem.h>#pragma comment ( lib, "Winmm.lib" )/***** 宏定义区******/#define NUM13// 烟花种类数量宏定义/***** 结构定义区**********/// 烟花结构struct FIRE{int r;// 当前爆炸半径int max_r;// 爆炸中心距离边缘最大半径int x, y;// 爆炸中心在窗口的坐标int cen_x, cen_y;// 爆炸中心相对图片左上角的坐标int width, height;// 图片的宽高int xy[240][240];// 储存图片像素点bool show;// 是否绽放bool draw;// 开始输出像素点DWORD t1, t2, dt;// 绽放速度}Fire[NUM];// 烟花弹结构struct JET{int x, y;// 喷射点坐标int hx, hy;// 最高点坐标------将赋值给FIRE 里面的x, y int height;// 烟花高度bool shoot;// 是否可以发射DWORD t1, t2, dt;// 发射速度IMAGE img[2];// 储存花弹一亮一暗图片byte n : 1;// 图片下标}Jet[NUM];/**** 函数申明区****/void Init(int);// 初始化烟花void Load();// 加载烟花图片void Shoot();// 发射烟花void Chose(DWORD&);// 筛选烟花void Style(DWORD&);// 发射样式void Show(DWORD*);// 绽放烟花// 主函数void main(){initgraph(1200, 800);srand(time(0));// 播放背景音乐mciSendString("open ./fire/bk.mp3 alias bk", 0, 0, 0);mciSendString("play bk repeat", 0, 0, 0);//setfillstyle(0);settextstyle(50, 0, "楷体");setcolor(YELLOW);outtextxy(480, 100, "My Dear");outtextxy(400, 200, "愿你悲伤有人分担!");outtextxy(400, 280, "愿你孤独有人陪伴!");getchar();cleardevice();settextstyle(25, 0, "楷体");outtextxy(400, 250, "曾经");outtextxy(400, 300, "有一份真挚的爱情摆在我的面前");outtextxy(400, 350, "我没有珍惜");outtextxy(400, 400, "直到失去了才后悔莫及");outtextxy(400, 450, "世间最痛苦的事情莫过于此");outtextxy(400, 500, "如果上天能给我一个在来一次的机会"); outtextxy(400, 550, "我会对那个女孩说");outtextxy(400, 600, "我爱你,一万年");outtextxy(700, 660, "——谢新明");getchar();DWORD t1 = timeGetTime();// 筛选烟花计时DWORD st1 = timeGetTime();// 播放花样计时DWORD* pMem = GetImageBuffer();// 获取窗口显存指针for (int i = 0; i < NUM; i++)// 初始化烟花{Init(i);}Load();// 将烟花图片信息加载进相应结构中BeginBatchDraw();// 开始批量绘图while (!kbhit()){Sleep(10);// 随机选择4000 个像素点擦除for (int clr = 0; clr < 1000; clr++){for (int j = 0; j < 2; j++){int px1 = rand() % 1200;int py1 = rand() % 800;if (py1 < 799)// 防止越界pMem[py1 * 1200 + px1] = pMem[py1 * 1200 + px1 + 1] = BLACK;// 对显存赋值擦出像素点}}Chose(t1);// 筛选烟花Shoot();// 发射烟花Show(pMem);// 绽放烟花Style(st1);// 花样发射FlushBatchDraw();// 显示前面的所有绘图操作}}// 初始化烟花参数void Init(int i){// 分别为:烟花中心到图片边缘的最远距离、烟花中心到图片左上角的距离(x、y) 两个分量int r[13] = { 120, 120, 155, 123, 130, 147, 138, 138, 130, 135, 140, 132, 155 };int x[13] = { 120, 120, 110, 117, 110, 93, 102, 102, 110, 105, 100, 108, 110 };int y[13] = { 120, 120, 85, 118, 120, 103, 105, 110, 110, 120, 120, 104, 85 };/**** 初始化烟花*****/Fire[i].x = 0;// 烟花中心坐标Fire[i].y = 0;Fire[i].width = 240;// 图片宽Fire[i].height = 240;// 图片高Fire[i].max_r = r[i];// 最大半径Fire[i].cen_x = x[i];// 中心距左上角距离Fire[i].cen_y = y[i];Fire[i].show = false;// 是否绽放Fire[i].dt = 5;// 绽放时间间隔Fire[i].t1 = timeGetTime();Fire[i].r = 0;// 从0 开始绽放/**** 初始化烟花弹*****/Jet[i].x = -240;// 烟花弹左上角坐标Jet[i].y = -240;Jet[i].hx = -240;// 烟花弹发射最高点坐标Jet[i].hy = -240;Jet[i].height = 0;// 发射高度Jet[i].t1 = timeGetTime();Jet[i].dt = rand() % 10;// 发射速度时间间隔Jet[i].n = 0;// 烟花弹闪烁图片下标Jet[i].shoot = false;// 是否发射// 加载图片void Load(){/**** 储存烟花的像素点颜色****/IMAGE fm, gm;loadimage(&fm, "./fire/flower.jpg", 3120, 240);for (int i = 0; i < 13; i++){SetWorkingImage(&fm);getimage(&gm, i * 240, 0, 240, 240);SetWorkingImage(&gm);for (int a = 0; a < 240; a++)for (int b = 0; b < 240; b++)Fire[i].xy[a][b] = getpixel(a, b);}/**** 加载烟花弹************/IMAGE sm;loadimage(&sm, "./fire/shoot.jpg", 200, 50);for (int i = 0; i < 13; i++){SetWorkingImage(&sm);int n = rand() % 5;getimage(&Jet[i].img[0], n * 20, 0, 20, 50);// 暗getimage(&Jet[i].img[1], (n + 5) * 20, 0, 20, 50);// 亮}SetWorkingImage();// 设置回绘图窗口}// 在一定范围内筛选可发射的烟花,并初始化发射参数,输出烟花弹到屏幕,播放声音void Chose(DWORD& t1){DWORD t2 = timeGetTime();if (t2 - t1 > 100){int n = rand() % 20;if (n < 13 && Jet[n].shoot == false && Fire[n].show == false){/**** 重置烟花弹,预备发射*****/Jet[n].x = rand() % 1200;Jet[n].y = rand() % 100 + 600;Jet[n].hx = Jet[n].x;Jet[n].hy = rand() % 400;Jet[n].height = Jet[n].y - Jet[n].hy;Jet[n].shoot = true;putimage(Jet[n].x, Jet[n].y, &Jet[n].img[Jet[n].n], SRCINVERT);/**** 播放每个烟花弹的声音*****/char c1[50], c2[30], c3[30];sprintf(c1, "open ./fire/shoot.mp3 alias s%d", n);sprintf(c2, "play s%d", n);sprintf(c3, "close n%d", n);mciSendString(c3, 0, 0, 0);mciSendString(c1, 0, 0, 0);mciSendString(c2, 0, 0, 0);}t1 = t2;}}// 扫描烟花弹并发射void Shoot(){for (int i = 0; i < 13; i++){Jet[i].t2 = timeGetTime();if (Jet[i].t2 - Jet[i].t1 > Jet[i].dt && Jet[i].shoot == true){/**** 烟花弹的上升*****/putimage(Jet[i].x, Jet[i].y, &Jet[i].img[Jet[i].n], SRCINVERT);if (Jet[i].y > Jet[i].hy){Jet[i].n++;Jet[i].y -= 5;}putimage(Jet[i].x, Jet[i].y, &Jet[i].img[Jet[i].n], SRCINVERT);/**** 上升到高度的3 / 4,减速*****/if ((Jet[i].y - Jet[i].hy) * 4 < Jet[i].height)Jet[i].dt = rand() % 4 + 10;/**** 上升到最大高度*****/if (Jet[i].y <= Jet[i].hy){// 播放爆炸声char c1[50], c2[30], c3[30];sprintf(c1, "open ./fire/bomb.wav alias n%d", i);sprintf(c2, "play n%d", i);sprintf(c3, "close s%d", i);mciSendString(c3, 0, 0, 0);mciSendString(c1, 0, 0, 0);mciSendString(c2, 0, 0, 0);putimage(Jet[i].x, Jet[i].y, &Jet[i].img[Jet[i].n], SRCINVERT);// 擦掉烟花弹Fire[i].x = Jet[i].hx + 10;// 在烟花弹中间爆炸Fire[i].y = Jet[i].hy;// 在最高点绽放Fire[i].show = true;// 开始绽放Jet[i].shoot = false;// 停止发射}Jet[i].t1 = Jet[i].t2;}}}// 显示花样void Style(DWORD& st1){DWORD st2 = timeGetTime();if (st2 - st1 > 20000)// 一首歌的时间{// 心形坐标int x[13] = { 60, 75, 91, 100, 95, 75, 60, 45, 25, 15, 25, 41, 60 };int y[13] = { 65, 53, 40, 22, 5, 4, 20, 4, 5, 22, 40, 53, 65 };for (int i = 0; i < NUM; i++){//cleardevice();/**** 规律分布烟花弹***/Jet[i].x = x[i] * 10;Jet[i].y = (y[i] + 75) * 10;Jet[i].hx = Jet[i].x;Jet[i].hy = y[i] * 10;Jet[i].height = Jet[i].y - Jet[i].hy;Jet[i].shoot = true;Jet[i].dt = 7;putimage(Jet[i].x, Jet[i].y, &Jet[i].img[Jet[i].n], SRCINVERT);// 显示烟花弹/**** 设置烟花参数***/Fire[i].x = Jet[i].x + 10;Fire[i].y = Jet[i].hy;Fire[i].show = false;Fire[i].r = 0;/**** 播放发射声音***/char c1[50], c2[30], c3[30];sprintf(c1, "open ./fire/shoot.mp3 alias s%d", i);sprintf(c2, "play s%d", i);sprintf(c3, "close n%d", i);mciSendString(c3, 0, 0, 0);mciSendString(c1, 0, 0, 0);mciSendString(c2, 0, 0, 0);}st1 = st2;}}// 绽放烟花void Show(DWORD* pMem){// 烟花个阶段绽放时间间隔,制作变速绽放效果int drt[16] = { 5, 5, 5, 5, 5, 6, 25, 25, 25, 25, 55, 55, 55, 55, 55 };for (int i = 0; i < NUM; i++){Fire[i].t2 = timeGetTime();// 增加爆炸半径,绽放烟花,增加时间间隔做变速效果if (Fire[i].t2 - Fire[i].t1 > Fire[i].dt && Fire[i].show == true){if (Fire[i].r < Fire[i].max_r){Fire[i].r++;Fire[i].dt = drt[Fire[i].r / 10];Fire[i].draw = true;}if (Fire[i].r >= Fire[i].max_r - 1){Fire[i].draw = false;Init(i);}Fire[i].t1 = Fire[i].t2;}// 如果该号炮花可爆炸,根据当前爆炸半径画烟花,颜色值接近黑色的不输出。
c语言表白代码
C语言表白代码简介在这个数字化的时代,人们常常通过各种方式表达自己的爱意,而编程作为一种创造力的表达方式,也能够用来传达情感。
C语言作为一门广泛应用于系统编程和底层开发的高效语言,也可以被用来写出一段特殊的代码,来表达对某个人的爱意。
这个任务就是让我们编写一段”C语言表白代码”,让计算机为我们传递爱情的信息。
代码实现下面是一段用C语言写的表白代码:#include<stdio.h>int main() {printf("亲爱的,我想对你说:\n");printf("I love you!\n");printf("我愿意和你\n");printf("一起写下人生的代码\n");printf("无论是快乐的时光\n");printf("还是困难的挑战\n");printf("只要我们携手同行\n");printf("就能够克服一切\n");printf("你是我生命中的光芒\n");printf("有了你\n");printf("世界变得更加美好\n");printf("爱你永远!\n");return 0;}代码解析1.首先,我们使用#include<stdio.h>来导入标准输入输出库,这样我们就能够使用printf函数来输出信息到控制台。
2.在main函数中,我们使用printf函数分多次输出表白的内容。
我们首先使用\n来进行换行,使得输出更加美观。
3.在第2行代码中,我们输出了一个固定的文字:“亲爱的,我想对你说:”。
这是对被表白者的称呼,然后表示接下来要向TA表达爱意。
4.在第3行代码中,我们使用printf函数输出了一句表白的话:“I loveyou!”。
C语言实现520表白代码祝你表白成功!
C语⾔实现520表⽩代码祝你表⽩成功!本⽂实例为⼤家分享了C语⾔实现520表⽩的具体代码,供⼤家参考,具体内容如下在这个狂虐单⾝狗的节⽇,实在⽆聊写了⼏⾏也不知道向谁告⽩的代码,献丑献丑:#include<stdio.h>#include<math.h>int main(){float y, x, z;printf("那⼀天\n");printf("第⼀次遇见你\n");printf("忘不了\n");printf("你的容颜\n");printf("若轻云之蔽⽉,如流风之回雪\n");printf("\n\n\n");printf("其实\n");printf("有⼀句话\n");printf("我⼀直想对你说:\n");for (double y = 2.5; y >= -1.6; y = y - 0.2){for (double x = -3; x <= 4.8; x = x + 0.1){(pow((x*x + y*y - 1), 3) <= 3.6*x*x*y*y*y|| (x>-2.4 && x<-2.1 && y<1.5 && y>-1)|| (((x<2.5 && x>2.2) || (x>3.4 && x<3.7)) && y>-1 && y<1.5)|| (y>-1 && y<-0.6 && x<3.7 && x>2.2)) ? printf("*") : printf(" ");}printf("\n");}getchar();}运⾏效果图:代码⼆#include <stdio.h>#include <math.h>#include <stdlib.h>#define I 20#define R 340#include <string.h>int main(){char answer[10];printf("遇到你\n我才发现\n曾经所有的条件\n似乎都成了我等你的借⼝\n\n");printf("请允许我,从今往后映⼊你\n明媚的眼\n");printf("输⼊yes或no,点击Enter");printf("\n ");scanf("%s", answer);char b[4]="yes";if(strcmp(answer,b)==0){float y, x, z, f;for (y = 1.5f; y > -1.5f; y -= 0.1f){for (x = -1.5f; x < 1.5f; x += 0.05f){z = x * x + y * y - 1;f = z * z*z - x * x*y*y*y;putchar(f <= 0.0f ? "*********"[(int)(f*-8.0f)] : ' ');}putchar('\n');}long time;for (;;){system("color a");for (time = 0; time<99999999; time++);system("color b");for (time = 0; time<99999999; time++);system("color c");for (time = 0; time<99999999; time++);system("color d");for (time = 0; time<99999999; time++);system("color e");for (time = 0; time<99999999; time++);system("color f");for (time = 0; time<99999999; time++);system("color 0");for (time = 0; time<99999999; time++);system("color 1");for (time = 0; time<99999999; time++);system("color 2");for (time = 0; time<99999999; time++);system("color 3");for (time = 0; time<99999999; time++);system("color 4");for (time = 0; time<99999999; time++);system("color 5");for (time = 0; time<99999999; time++);system("color 6");for (time = 0; time<99999999; time++);system("color 7");for (time = 0; time<99999999; time++);system("color 8");for (time = 0; time<99999999; time++);system("color 9");}getchar();}else{printf("\n好吧,那就相忘于江湖吧!\n");}return 0;}以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
用microsoft visual c 跳动爱心的代码
用microsoft visual c 跳动爱心的代码在这个浪漫的情人节,你是否已经准备好给你的爱人送上一份特别的礼物呢?如果还没有,不妨学习一下如何用Microsoft Visual C 写出一个跳动的爱心程序,为你的爱人制作一个爱的表白。
首先,我们需要打开Microsoft Visual C,创建一个新的Windows 应用程序。
然后,在窗口的左侧找到“工具箱”栏目,选择“按钮”并将其拖动到窗口中央。
接下来,我们需要在窗口的右侧找到“属性”栏目,选择“FlatStyle”并将其设置为“Flat”。
然后选择“Text”并输入“爱”字,将字体大小改为48。
最后,选择“ForeColor”并将其设置为红色。
接下来,我们需要在窗口上添加爱心的图案。
在“工具箱”中找到“PictureBox”并将其拖动到窗口中央。
在“属性”栏目中选择“Image”并将其设置为一个爱心的图案。
如果你没有合适的图案,可以在网上搜索一下并将其下载到计算机中。
现在,我们需要添加跳动的动画效果。
在“工具箱”中找到“Timer”并将其拖动到窗口中央。
在“属性”栏目中选择“Interval”并将其设置为50毫秒,这将控制动画的速度。
然后在“事件”栏目中选择“Tick”并添加以下代码:int x = 0, y = 0;private void timer1_Tick(object sender, EventArgs e){x += 10;y = (int)(Math.Sin(x / 180.0 * Math.PI) * 50);pictureBox1.Location = new Point(pictureBox1.Location.X + 10, pictureBox1.Location.Y + y);}这段代码的作用是让爱心在窗口中往右跳动,并且上下浮动。
你可以根据自己的喜好调整x和y的值,来改变爱心跳动的方式。
最后,我们需要在“事件”栏目中选择“Load”并添加以下代码: timer1.Enabled = true;这将启动计时器,让爱心开始跳动。
520c语言代码共享
#include<stdio.h>int print(int i,int j){if(i==5){if(j>=5&&j<=8 || j>=11&&j<=14 || j>=17&&j<=20 )return 1;else return 0;}else if(i==6 || i==7){if(j==5 || j==14 || j==17 || j==20) return 1;else return 0;}else if(i==8){if(j>=5&&j<=8 || j>=11&&j<=14 || j==17 || j==20) return 1;else return 0;}else if(i==9 || i==10){if(j==8 || j==11 || j==17 || j==20) return 1;else return 0;}else if(i==11){if(j>=5&&j<=8 || j>=11&&j<=14 || j>=17&&j<=20 )return 1;else return 0;}else if(i==15){if(j==9 || j==10 || j==14 || j==15)return 1;else return 0;}else if(i==16){if(j==8 || j==11 || j==13 || j==16)return 1;else return 0;}else if(i==17){if(j==7 || j==12 || j==17)return 1;else return 0;}else if(i==18){if(j==8 || j==16)return 1;else return 0;}else if(i==19){if(j==9 || j==15)return 1;else return 0;}else if(i==20){if(j==10 || j==14)return 1;else return 0;}else if(i==21){if(j==11 || j==13)return 1;else return 0;}else if(i==22 && j==12) return 1;else return 0;}int name(int i,int j){if(i==23){if(j==14)printf("b");else if(j==15)printf("y");else if(j==16)printf(":");else if(j==17)printf("L");else if(j==18)printf("w");else if(j==19)printf("L");}return 1;}void main(){int i,j;char mu;char min[6];mu=003;for(i=1;i<=22;i++){for(j=1;j<=30;j++){if(print(i,j)){printf("%c",mu);}elseprintf("-");}printf("\n");}printf("----------------------by:LWL--\n"); }代码运行结果:喜欢就拿去哦。
表白八法趣讲C语言顺序程序设计
表白八法趣讲C语言顺序程序设计在日常生活的方方面面,我们时常会遇到让自己心动的人。
如何表白自己的心意?怎样追求属于自己的爱情?本文将通过C语言顺序程序设计的角度,为大家解析表白的八种方法,让大家在追求爱情的过程中更加勇敢和自信。
void confession_1() {printf("你知道吗,我发现了一种治愈失眠的方法。
就是躺在你心里。
");void confession_2() {printf("我一直在寻找世界上最美丽的微笑,看来,我已经找到了。
");void confession_3() {printf("你是我心中的一首诗,我想你,每一行都充满爱意。
"); 在C语言顺序程序设计中,我们可以使用printf函数向控制台输出文本。
通过调用不同的表白方法函数,我们可以轻松地展示各种表白的技巧。
printf("请选择你的表白方法:\n");printf("幽默风趣法\n");printf("经典耐人寻味法\n");printf("独特创意法\n");scanf("%d", &choice);confession_1();confession_2();confession_3();printf("无效的选择。
\n");在这段顺序程序设计中,我们首先使用printf函数向用户展示三种表白方法,并请求用户输入选择。
然后,使用scanf函数读取用户的输入,并根据选择调用相应的表白方法函数。
我们使用return语句结束程序。
总结起来,本文通过C语言顺序程序设计的方式,为读者展示了八种表白方法。
这些方法涵盖了幽默风趣、经典耐人寻味和独特创意等不同风格,相信总有一款适合大家。
最重要的是,无论大家选择哪种表白方式,都要保持真诚和用心,勇敢追求自己的爱情。
C语言爱心代码大全(2022表白神器)
C语⾔爱⼼代码⼤全(2022表⽩神器)⼀、C语⾔爱⼼代码1、love图案的C语⾔爱⼼代码C语⾔爱⼼源代码如下:#include <stdio.h>int main(){int i, j, k, n = 0, x = 0, y = 50;//爱⼼的头部没有规律,所以直接打印printf("\n\n\n\n\n");printf(" lovelove lovelove\n");printf(" lovelovelove lovelovelove\n");printf(" lovelovelovelove lovelovelovelove\n");printf(" lovelovelovelovelove lovelovelovelovelove\n");printf(" lovelovelovelovelovelo lovelovelovelovelovelo\n");printf(" lovelovelovelovelovelove lovelovelovelovelovelov\n");for (i = 0; i < 2; i++){printf("lovelovelovelovelovelovelovelovelovelovelovelovelove\n");}for(i=0;i<5;i++) //爱⼼的中间部分的上部分{y = 50;y = y - i*2;n++;for (k = 0; k < n; k++) //在每⼀⾏的起始位置先打印空格{printf(" ");}while(1) //空格后⾯打印love,但是要注意love即使没打印完,也要换⾏{if (x < y){printf("l");y--;}elsebreak;if (x < y){printf("o");y--;}elsebreak; if (x < y){printf("v");y--;}elsebreak; if (x < y){printf("e");y--;}elsebreak;}printf("\n");}//最下⾯的部分,具体内容同上,没和上⼀部分放⼀起是因为从这⾏开始多两个空格for (i = 0,n=3; i < 10; i++){y = 37;y = y - i * 4;n++;for (k = 0; k < n; k++){printf(" ");}while (1){if (x < y){printf("l");y--;}elsebreak;if (x < y){printf("o");y--;}elsebreak; if (x < y){printf("v");y--;}elsebreak; if (x < y){printf("e");y--;}elsebreak;}printf("\n");}printf("\n\n\n\n\n\n\n\n\n\n\n\n");return 0;}已把⼤量C语⾔源码整理为⼀个压缩包关注微信公众号:“C和C加加” 回复:“源码” 即可获取2、⼼形图案的C语⾔爱⼼代码C语⾔爱⼼代码如下:#include <stdio.h>int main(){int i, j, k, l, m;char c=3; //ASCII码⾥⾯ 3 就是⼀个字符⼩爱⼼for (i=1; i<=5; i++) printf("\n"); //开头空出5⾏for (i=1; i<=3; i++) { //前3⾏中间有空隙分开来写for (j=1; j<=32-2*i; j++) printf(" "); //左边的空格,每下⼀⾏左边的空格⽐上⼀⾏少2个 //8*n-2*ifor (k=1; k<=4*i+1; k++) printf("%c", c);//输出左半部分字符⼩爱⼼for (l=1; l<=13-4*i; l++) printf(" "); //中间的空格,每下⼀⾏的空格⽐上⼀⾏少4个for (m=1; m<=4*i+1; m++) printf("%c", c);//输出右半部分字符⼩爱⼼printf("\n"); //每⼀⾏输出完毕换⾏}for (i=1; i<=3; i++) { //下3⾏中间没有空格for (j=1; j<=24+1; j++) printf(" "); //左边的空格 //8*(n-1)+1for (k=1; k<=29; k++) printf("%c", c);//输出字符⼩爱⼼printf("\n"); //每⼀⾏输出完毕换⾏}for (i=7; i>=1; i--) { //下7⾏for (j=1; j<=40-2*i; j++) printf(" "); //左边的空格,每下⼀⾏左边的空格⽐上⼀⾏少2个//8*(n+1)-2*i for (k=1; k<=4*i-1; k++) printf("%c", c);//每下⼀⾏的字符⼩爱⼼⽐上⼀⾏少4个(这个循环是i--)printf("\n"); //每⼀⾏输出完毕换⾏}for (i=1; i<=39; i++) printf(" "); //最后⼀⾏左边的空格printf("%c\n", c); //最后⼀个字符⼩爱⼼for (i=1; i<=5; i++) printf("\n"); //最后空出5⾏return 0;}效果图展⽰:3、复杂动态C语⾔爱⼼代码C语⾔爱⼼代码:#include <stdio.h>#include <math.h>#include <windows.h>#include <tchar.h>float f(float x, float y, float z) {float a = x * x + 9.0f / 4.0f * y * y + z * z - 1;return a * a * a - x * x * z * z * z - 9.0f / 80.0f * y * y * z * z * z;}float h(float x, float z) {for (float y = 1.0f; y >= 0.0f; y -= 0.001f)if (f(x, y, z) <= 0.0f)return y;return 0.0f;}int main() {HANDLE o = GetStdHandle(STD_OUTPUT_HANDLE); _TCHAR buffer[25][80] = { _T(' ') };_TCHAR ramp[] = _T(".:-=+*#%@");for (float t = 0.0f;; t += 0.1f) {int sy = 0;float s = sinf(t);float a = s * s * s * s * 0.2f;for (float z = 1.3f; z > -1.2f; z -= 0.1f) {_TCHAR* p = &buffer[sy++][0];float tz = z * (1.2f - a);for (float x = -1.5f; x < 1.5f; x += 0.05f) {float tx = x * (1.2f + a);float v = f(tx, 0.0f, tz);if (v <= 0.0f) {float y0 = h(tx, tz);float ny = 0.01f;float nx = h(tx + ny, tz) - y0;float nz = h(tx, tz + ny) - y0;float nd = 1.0f / sqrtf(nx * nx + ny * ny + nz * nz); float d = (nx + ny - nz) * nd * 0.5f + 0.5f;*p++ = ramp[(int)(d * 5.0f)];}else*p++ = ' ';}}for (sy = 0; sy < 25; sy++) {COORD coord = { 0, sy };SetConsoleCursorPosition(o, coord);WriteConsole(o, buffer[sy], 79, NULL, 0);}Sleep(33);}}效果如下:。
c语言表白代码
c语言表白代码C语言表白代码,是程序员们为了向自己喜欢的人表达自己的情感而创建的一种代码,这种代码非常浪漫,而且缘起于程序员们平日里所熟悉的计算机语言,通过程序语句来表达自己的心意。
C语言表白代码虽然比较简单,但却营造了浪漫的氛围,给人们带来了不同寻常的感动。
下面,我来为大家介绍一下C语言表白的相关内容,及其要求。
首先,C语言表白代码需要用到一些基本的程序语句,例如if语句、循环语句等基本语句,这些语句是表白程序的基础。
其次,表白代码需要注意程序的正确性和规范性,要保证程序的可读性和可执行性。
接下来,我就为大家演示一下C语言表白的示例代码:#include <stdio.h>int main(){int i, j;for (i = 0; i < 520; i++){for (j = 0; j < i; j++){printf("♥");//打印心形}printf("\n");}printf("我要说的是:亲爱的你,我喜欢你!\n");//表白语句return 0;}在这段代码中,我们使用了for循环来打印出一个简单的心形图案,并在结尾添加了一句表白的话语“亲爱的你,我喜欢你!”,通过这种浪漫的方式表达自己的情感,营造了一种浪漫的氛围。
当然,这只是一个简单的例子,实际编写表白代码时,可以根据自己的喜好和情感来编写不同的程序,比如可以加上图片、音乐等元素,营造更加浪漫的氛围。
总之,C语言表白代码是一种别具一格的方式,通过程序的形式表达自己的情感,给人们带来了不一样的感动体验,它将程序员们独特的思想和娴熟的技巧完美结合,打造出了一种独特的浪漫方式,成为了程序员们向自己喜欢的人表达情感的一种特殊方式。
用C语言表白
printf(" ***************************** *****************************\n");
printf("questhion 1:你们第一次见面的时候,你就觉得付洋这小孩挺好的吧?\n\n");
printf(" A:是 B:不是\n\n");
printf("请选择:");answer=getchar();if(answer=='B'){printf("月老点评:小丫头,你在说谎!\n\n");count++;getchar();}
printf("''''''''''''''''''''''''''''''''''''''''''''''''\n");
printf("''''''''''''''''''''''''''''''''''''''''''''''''\n");
简单浪漫的C语言代码
简单浪漫的C语言代码C语言,作为计算机科学领域最为经典的语言之一,无论是在工程上还是在教学上都有着极大的影响力。
很多人认为,C语言的代码冗长且复杂,很难产生浪漫和柔软的感觉,但事实上,C语言也可以写出简单浪漫的代码,让人无法拒绝的韵味。
下面就介绍几个简单浪漫的C语言代码。
1.模拟心跳```c #include <stdio.h> #include <stdlib.h>#include <time.h> #include <unistd.h>#define MAX 100int main() { srand(time(NULL)); intcount = 0; while(1) { printf("#"); usleep((rand()%MAX)*1000); printf("#"); usleep((rand()%MAX)*1000); count++;if(count%60 == 0){ printf("\n"); } }return 0; } ```这段代码通过打印“#”字符来模拟心跳的跳动,加入了随机延迟,让它们的跳动速度变成了不规律的,更加具有人类般的柔软性。
同时,更加可爱的是,每打印60个“#”字符后,它会自动地换行,给人一种温暖而富有生气的感觉。
2.漂亮的打印矩形```c #include <stdio.h> #include <stdlib.h>#include <unistd.h>#define ROW 10 #define COL 40int main() { for(int i = 0; i < ROW; i++){ for(int j = 0; j < COL; j++){ if(i == 0 || i == ROW-1 || j == 0 ||j == COL-1){ printf("*"); } else{ printf(""); } } printf("\n"); usleep(100000); } return 0; } ```这段代码可以打印一个非常简单的矩形,但是通过在矩形外围的边框打印“*”字符,它变得非常漂亮。
情人节c语言代码
竭诚为您提供优质文档/双击可除情人节c语言代码篇一:一些简单的c语言程序代码由键盘任意输入1个4位数整数,分别输出其中的个位、十位、百位、千位。
/*expe3-10*/#include#includevoidmain(void){intmun,a,b,c,d;scanf("%d",a=mun/1000;/*千位*/b=(mun%1000)/100;/*百位*/c=(mun%100)/10;/*十位*/d=(mun%10);/*个位*/printf("千位数字为=%d\n",a);printf("百位数字为=%d\n",b);printf("十位数字为=%d\n",c);printf("个位数字为=%d\n",d);}由键盘任意输入3个数据,找出其中的最大数和最小数。
#includevoidmain(void){floata,b,c,k,g;/*k小g大*/printf("请输入三个数");scanf("%f%f%f",if(a k=a;g=b;}else{k=b;g=a;}if(k {printf("\n最小的数=%5.2f",k);}else{printf("\n最小的数=%5.2f",c);}if(g>c)/*最大*/ {printf("\n最大的数=%5.2f",g);}else{printf("\n最大的数=%5.2f",c);}}判断三角形的形状#include#includevoidmain(void){ printf("请输入三角形三边");floata,b,c,p,s,k1,k2,k3;scanf("%f%f%f",while(a+b printf("不能构成三角形,请重新输入");scanf("%f%f%f",}k1=a*a;k2=b*b;k3=c*c;if(a==b}elseif(a==b||b==c||c==a){printf("此三角形为等腰三角形");}elseif((k1==b*b+c*c)||(k2==a*a+c*c)||(k3=a*a+b*b)) {printf("此三角形为直角三角形");}else{printf("此三角形为一般三角形");}}九九乘法表整体#includevoidmain(void){inti,j;for(i=1;i for(j=1;j#includevoidmain(void){inti,j;for(i=1;i for(j=1;j#includevoidmain(void){inti,j;for(i=1;i for(j=1;j {printf("%5d",j*i);}printf("\n");}}打印菱形#includevoidmain(void){inti,j,k;for(i=1;i for(j=0;j for(k=1;kfor(i=4;i>=0;i--){for(j=4-i;j>0;j--){printf("!");}for(k=2*i;k>=0;k--){printf("*");}printf("\n");}} 找回文#include#includevoidmain(void){charstr[80];inti,j,istrlenstr,iFlag;printf("请输入字符串\n");gets(str);istrlenstr=strlen(str);for(i=0,j=istrlenstr-1;iif(str[i]==str[j]){iFlag=1;}else{iFlag=0;break;}}if(iFlag==1){printf("输入的是回文!\n");}else{printf("输入的不是回文!\n");}}找名字指针法/*不用查找函数,用指针的方法*/#includevoidmain(void){charstr[10][80],a[80],*p[10],*q=nuLL;inti,j,iFlag=0 ;}if(iFlag==1)printf("FounD!该名字的位置为%d",i);*(a+ipos)=iTem;}printf("排序之后的为");//intistrlenstr;printf("请输入名字\n");for(i=0;i printf("请输入想查找的名字\n");gets(a);for(i=0;i for(i=0;iwhile(*(p[i]+j)}j++;}if(*(p[i]+j)==\0\0){iFlag=1;break;}elseprintf("noTFounD!");}/*利用指针给10个数排序*/#includeintmain(void){inta[10],*p=nuLL,iTem;inti,j,ipos=0;printf("请输入10个数\n");for(i=0;i for(i=0;i ipos=i;for(j=i+1;j if(a[j] iTem=*(a+i);*(a+i)=*(a+ipos);for(i=0;i /*名字排序,从大到小*/#include#includevoidmain(void){chara[10][10],cTem p[10];inti,j,imax;printf("输入十个学生姓名:\n");for(i=0;iif(imax!=i){strcpy(cTemp,a[i]);strcpy(a[i],a[imax]) ;strcpy(a[imax],cTemp);}}printf("按照字典降序排序为:\n");for(i=0;i /*查找并删除某字符*/#includeintmain(){charstr[80],*p=nuLL,*q;chart;printf("请输入字符串:\n");gets(str);printf("请输入想要删除的字符:\n");t=getchar();p=str;q=str;for(p=str;*p!=\0;p++){if(*p!=t){*q++=*p;}}*q=\0;puts(str);}函数作业(全部)/*交换器,引用全局变量*/方法一inta,b;voidmain(void){scanf("%d%d",fun();printf("a=%d,b=%d\n",a,b);}voidfun(void){intc;c=a;a=b;b=c;}方法二#include#defineswap(x,y){inttmp=x;x=y;y=tmp;}intmain(){intx,y;printf("请输入两个数字\n");scanf("%d%d",swap(x,y);printf("交换之后的数字是\n");printf("%d\t%d\t",x,y);return0;}/*用函数找最大公约数*/#includeintmaxd(int,int);intmain(){inta,b,d;printf("请输入两个整数\n");scanf("%d%d",d=maxd(a,b);printf("这两个数的最大公约数为:%d",d);return0;} intmaxd(inta,intb){intm,n,k;if(a{m=b;n=a;}else{m=a;n=b;}do{k=m%n;m=n;n=k;}while(n!= 0);return(m);}/*用函数统计*/#includeinticount(char*);intmain(){charstr[80];intm=0;printf("请输入字符串\n");gets(str);m=icount(str);printf("字符串中数字的个数有:%d",m);return0;} inticount(char*p){intk=0;while(*p!=/0){if(*p>=09)k++;}returnk;}/*排序函数*/#include#includevoidisort(int[],int);intmain(){ inta[10];inti;printf("请输入10个整数\n");for(i=0;iinti,j,t,ipos;for(i=0;i ipos=i;for(j=i+1;j if(x[j] if(ipos!=i){t=x[i];x[i]=x[ipos];x[ipos]=t;}}}/*用函数找素数*/#includeintiprime(int);intmain(){inti,k=0;篇二:c语言代码************************************************************************/*arf.c--arrayfunction*/#include#definesIZe5voidshow_array(doublear[],intn);voidmult_array(doublemult,doublear[],intn);intmain(void){staticdoubledip[sIZe]={20.0,17.66,8.2,15.3,22.22};printf("Theoriginaldiparray:\n");show_array(dip,sIZe);mult_array(2.5,dip,sIZe);printf("Thediparrayaftercallingmult_array():\n");show_array(dip,sIZe);return0;}voidshow_array(doublear[],intn){inti;for(i=0;i printf("%8.3f",ar[i]);putchar(\n);}voidmult_array(doublemult,doublear[],intsize) {inti;for(i=0;i *(ar++)*=mult;}??/************************************************** **************************conFIDenTIALAnDpRopRIeTAR YInFoRmATIon.Theentirecontentsofthisfileiscopyright macromedia,Inc.1993-1998,AllRightsReserved.Thisdocumentisanunpublishedtradesecretofmacromedia,Inc.andmaynotbeviewed,copiedordistributedbyanyone,withoutthespecif ic,writtenpermissionofmacromedia,Inc.*************************************************** *************************/#include#include#include"sbitmap.h"#include"memcop.h"#include"raster.h"#include"zlib/zlib.h"//Downloadbyhttp:////utility//intsbitmapbitsperpixel(intbmFormat){switch(bmFormat){casebm1bit:return1;casebm2bit:return2;casebm4bit:return4;casebm8bit:return8;casebm16bit:return16;casebm32bit:return32;}FLAshAsseRT(false);return0;}intsbitmapcalcRowbytes(intbmFormat,intwidth) {switch(bmFormat){casebm1bit:return((width+31)>>3)casebm2bit:return((width+15)>>2)casebm4bit:return((width+7)>>1)casebm8bit:return(width+3)casebm16bit:return(2*width+3)casebm32bit:return4*width;}FLAshAsseRT(false);return0;}////sbitmapcore//voidsbitmapcore::getRgbpixel(intx,inty,RgbI*c) {FLAshAsseRT(baseAddr);//cliptotheedgesif(x if(y if(y>=height)y=height-1;if(x>=width)x=width-1;u8*rowAddr=(u8*)baseAddr+y*rowbytes;switch(bmFormat){casebm1bit:{u8*bits=rowAddr+(x>>3);intshift=7-(xexpandcolor(cTab->colors[(*bits>shift)}return;casebm2bit:{u8*bits=rowAddr+(x>>2);intshift=(3-(xexpandcolor(cTab->colors[(*bits>>shift) }return;casebm4bit:{u8*bits=rowAddr+(x>>1);intshift=(1-(xexpandcolor(cTab->colors[(*bits>>shift) }return;casebm8bit:{expandcolor(cTab->colors[rowAddr[x]],c); }return;casebm16bit:{u16pix=*((u16*)rowAddr+x);unpackpix16(pix,c);}return;casebm32bit:{u32pix=*((u32*)rowAddr+x);unpackpix32(pix,c);}return;}}//#ifndefwIn16voidsbitmapcore::getssRgbpixel(sFIxeDxh,sFIxeDyh,Rg bI*c){FLAshAsseRT(baseAddr);intx=(int)(xh>>16);inty=(int)(yh>>16);intxf=(u16)xh>>13;intyf=(u16)yh>>13;coverentrycv=pixcoverage[xf][yf];//cliptotheedgesif(x x=0;cv.ce[0]+=cv.ce[1];cv.ce[1]=0;//shiftthecoveragetot heleftmostcolumncv.ce[2]+=cv.ce[3];cv.ce[3]=0;}elseif(x>=width-1){x=width-2;cv.ce[1]+=cv.ce[0];cv.ce[0]=0;//shiftthecoveragetot herightmostcolumncv.ce[3]+=cv.ce[2];cv.ce[2]=0;}if(y y=0;cv.ce[0]+=cv.ce[2];cv.ce[2]=0;//shiftthecoveragetot hetoprowcv.ce[1]+=cv.ce[3];cv.ce[3]=0;}elseif(y>=height-1){y=height-2;cv.ce[2]+=cv.ce[0];cv.ce[0]=0;//shiftthecoveragetot hebottomrowcv.ce[3]+=cv.ce[1];cv.ce[1]=0;}//#if1RgbIupix;RgbIup;u8*rowAddr=(u8*)baseAddr+y*rowbytes;switch(b mFormat){casebm1bit:casebm2bit:casebm4bit:casebm8bi t:{constu8*shiftTab=shiftTabs[bmFormat];//tableofsh iftvaluesintpxmask=pxmasks[bmFormat];//maskthesamew idthasapixelintrbshift=rbshifts[bmFormat];//shiftco unttocalcrowbytesintstmask=stmasks[bmFormat];//mask toextractindexforshiftTab//getthefirstcolumnu8*bits =rowAddr+(x>>rbshift);intshift=shiftTab[xexpandcolo r(cTab->colors[(bits[0]>>shift)pix.l.c0*=cv.ce[0];p ix.l.c1*=cv.ce[0];expandcolor(cTab->colors[(bits[rowbytes]>>shift)pix.l.c0+=p.l.c0*cv.ce[2];pix.l.c1+= p.l.c1*cv.ce[2];//getthesecondcolumnx++;bits=rowAdd r+(x>>rbshift);shift=shiftTab[xexpandcolor(cTab->co lors[(bits[0]>>shift)pix.l.c0+=p.l.c0*cv.ce[1];pix. l.c1+=p.l.c1*cv.ce[1];expandcolor(cTab->colors[(bit s[rowbytes]>>shift)pix.l.c0+=p.l.c0*cv.ce[3];pix.l. c1+=p.l.c1*cv.ce[3];}break;casebm16bit:{u16*bits=(u 16*)rowAddr+x;unpackpix16(bits[0],pix.l.c0*=cv.ce[0 ];pix.l.c1*=cv.ce[0];unpackpix16(bits[1],pix.l.c0+= p.l.c0*cv.ce[1];pix.l.c1+=p.l.c1*cv.ce[1];篇三:c语言基础代码c基础1、输入成绩,判断是否及格#includevoidmain(){floata,b,max;printf("pleaseentera:");scanf("%f",if(a>=60)printf("及格\n");elseprintf("不及格\n");}2、输入两个学生a和b的成绩,输出其中高的成绩#includevoidmain(){floata,b,max;printf("pleaseenteraandb:");scanf("%f,%f",//数据输入时若无逗号一般用空格区分两输入值,本例一定要在两数之间加逗号if(a>=b)max=a;if(b>a)max=b;printf("max=%f\n",max);}3、要求按照百分制考试分数输出等级。
cc++表白小程序
cc++表⽩⼩程序1.开发⼯具: vs vc(任选⼀个)2.准备材料:a.⼀⾸⾳乐 (注意:⾳乐要求重命名为 “x” )b.20张图⽚(注意:图⽚要求重命名为 “1” "2" ”3“ ......"19" "20")3.重要的⼀项 : 将Unicode字符集更改为多字节字符集(重中之重千万注意)4.先看效果本来程序是图⽚循环转动的,但是截图出来就是这副鸟样⼦了,⼤家凑合先看着。
等下把程序⾃⼰做出来慢慢体会程序呀的浪漫。
5. 话不多说咱们直接上代码#include "graphics.h" //c++图形界⾯库#include "stdio.h"#include "time.h"#include "mmsystem.h"#pragma comment(lib,"winmm.lib")//点struct Point{int x;//x坐标int y;//y坐标};//1.定义 int x; //设x变量 IMAGE img;IMAGE imgBig[20];void InitImg(){char buf[128] = { 0 };//字符数组//循环20次for (int i = 0; i < 20; i++){//0-19 1-20sprintf(buf, "images\\%d.jpg", i + 1);//格式转换//2.加载 scanf("%d", &x);//加载的是整数 loadimage()loadimage(&imgBig[i], buf, 300, 200);loadimage(&imgSmall[i], buf, 30, 30);}}void InitWindow(){//1920*1080 获取 Get 设置Set//使⽤api来获取当前窗⼝的宽⾼//创建⼀个窗⼝宽⾼单位px 像素initgraph(GetSystemMetrics(SM_CXSCREEN),GetSystemMetrics(SM_CYSCREEN));//获取当前窗⼝句柄HWND hwnd = GetHWnd();//设置窗⼝风格减去窗⼝标题SetWindowLong(hwnd, GWL_STYLE,GetWindowLong(hwnd, GWL_STYLE) - WS_CAPTION);//设置窗⼝的起始点默认风格SetWindowPos(hwnd, HWND_TOPMOST, 450, 150, GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN), SWP_SHOWWINDOW);//拿到我背⾯的窗⼝风格LONG WindowLong = GetWindowLong(hwnd, GWL_EXSTYLE) | WS_EX_LAYERED;//设置窗⼝风格SetWindowLong(hwnd, GWL_EXSTYLE, WindowLong);//把⿊⾊的背景设置为透明SetLayeredWindowAttributes(hwnd, RGB(0, 0, 0), 0, LWA_COLORKEY);}int main(){//创建⼀个窗⼝//2个参数宽⾼//initgraph(800,800);//单位px 像素InitWindow();//open 打开这⾸歌mciSendString("open x.mp3", 0, 0, 0);//play 播放⾳乐mciSendString("play x.mp3", 0, 0, 0);//创建结构体数组Point arr[46] = {{ 395, 268 },{ 406, 222 },{ 416, 193 },{ 441, 162 },{ 468, 133 },{ 500, 117 },{ 537, 105 },{ 577, 107 },{ 617, 120 },{ 649, 146 },{ 666, 173 },{ 680, 211 },{ 683, 247 },{ 680, 293 },{ 675, 338 },{ 660, 385 },{ 640, 440 },{ 616, 484 },{ 588, 529 },{ 557, 573 },{ 530, 610 },{ 493, 645 },{ 460, 675 },{ 422, 696 },{ 381, 676 },{ 350, 654 },{ 320, 626 },{ 292, 606 },{ 257, 570 },{ 230, 540 },{ 200, 500 },{ 180, 470 },{ 160, 430 },{ 140, 390 },{ 126, 342 },{ 117, 293 },{ 120, 250 },{ 133, 203 },{ 160, 170 },{ 200, 140 },{ 240, 130 },{ 280, 135 },{ 312, 146 },{ 340, 170 },};char buff[46][50] = {"⼀封信","两年未都","没动笔","三个字","过了","⼏个四季","你是有","多想逃避","来不及","问问你","我已经","错过","相爱","的⽇期","那天你","消失在","⼈海⾥","你的背影","沉默的","让⼈恐惧","你说的","那些问题","我回答得","很坚定","偏偏","那个时候","我最想你","我不曾","爱过你","我⾃⼰","骗⾃⼰","已经给你","写了信","⼜被我","丢进海⾥","我不曾","爱过你","我⾃⼰","骗⾃⼰","明明觉得","⾃⼰","很冷静","却还","掉⼊","我⾃⼰","的陷阱"};//通过时间做随机数的种⼦srand((unsigned)time(NULL));//如何在窗⼝显⽰⽂字//编程和计算机做交互显⽰//printfInitImg();//for (int i = 0; i < 20; i++)//{// //3.显⽰ printf("%d\n", x);//显⽰整数 putimage()// putimage(0, 0, &img[i]);//图⽚在窗⼝显⽰的位置// Sleep(1000);//格式化输出//}//out输出 text⽂本 xy位置//在窗⼝对应的位置输出⽂本//outtextxy(0,0,"Hello,World!");//简单的绘图for (int i = 0; i < 46; i++){//设置颜⾊settextcolor(RGB(rand() % 256, rand() % 256, rand() % 256)); //i 0-45//outtextxy(arr[i].x, arr[i].y,buff[i]);putimage(arr[i].x, arr[i].y, &imgSmall[i % 20]);Sleep(80);}/*MOUSEMSG m;while (1){m = GetMouseMsg();if (m.uMsg == WM_LBUTTONDOWN){printf("X:%d,Y:%d\n", m.x, m.y);}}*/int add = 0;while (1){//清除设备cleardevice();for (int i = 0; i < 46; i++){//设置颜⾊//settextcolor(RGB(rand() % 256, rand() % 256, rand() % 256));//outtextxy(arr[i].x, arr[i].y, buff[(i+add)%46]);putimage(arr[i].x, arr[i].y, &imgSmall[(i + add) % 20]);}//ctrl +k ctrl+c 注释 20张 0-19 rand%20 0-19//ctrl +k ctrl+u 取消注释putimage(257, 308, &imgBig[add % 20]);add++;Sleep(1000);}//然⽂字动system("pause");//暂停return 0;}6.代码说多也多说不多他也就200来⾏希望⼤家可以⽤我的程序找到你的伴侣那我就很开⼼了。
c语言写的表白代码
c语言写的表白代码表白代码。
在程序员的世界里,表白也可以用代码来实现。
下面就让我们来看看一段用C语言写的表白代码吧。
```c。
#include <stdio.h>。
int main() {。
printf("I ");printf("love ");printf("you ");return 0;}。
```。
这段简单的代码就是用来表白的。
当我们运行这段代码时,屏幕上就会输出“I love you”。
虽然这段代码很简单,但是却蕴含着深情的表白之意。
在现实生活中,表白往往是一件让人紧张的事情。
但是在程序员的世界里,表白却可以变得轻松而有趣。
通过编写一段表白代码,不仅可以表达自己的情感,还可以展现自己的技术能力。
这样的表白方式不仅独特,还能给双方留下深刻的印象。
当然,表白代码并不是每个人都能写得出来的。
要想写出一段有趣、有爱的表白代码,首先需要对编程语言有一定的了解和掌握。
其次,还需要有一颗浪漫的心和一份创意。
只有将这两者结合起来,才能写出一段让人心动的表白代码。
除了C语言之外,还有很多其他编程语言也可以用来表白。
比如Python、Java、JavaScript等等。
每一种编程语言都有自己独特的特点,可以用来表达不同的情感。
比如Python的简洁、Java的稳重、JavaScript的灵活等等。
不同的编程语言可以带来不同的表白体验,可以根据自己和对方的喜好来选择合适的编程语言来表达自己的情感。
除了编程语言之外,表白代码还可以结合一些其他的元素来增加趣味性。
比如可以加上一些图形、动画或者音乐效果。
这样一来,不仅可以表达自己的情感,还可以给对方带来更多的惊喜和感动。
当然,表白代码只是一种表白方式,它并不适用于所有的情况。
在某些情况下,传统的表白方式可能更加合适。
但是无论是传统的表白方式还是表白代码,最重要的是表达出自己的真情。
只有真诚的情感才能打动对方的心。
c语言编程爱心代码讲解
c语言编程爱心代码讲解C语言编程是计算机科学中的基础课程,也是许多程序员的起点。
本文将为大家介绍一些C语言编程中的爱心代码,帮助大家更好地理解C语言的基础知识。
1. 打印“爱心”要打印出一个爱心,我们可以利用C语言中的字符数组和循环语句来实现。
具体代码如下:```#include <stdio.h>int main(){char heart[10][10] = {' ***** ','******* ',' ******* ',' ********',' ****** ',' **** ',' ** '};int i, j;for (i = 0; i < 7; i++){for (j = 0; j < 10; j++){printf('%c', heart[i][j]);}printf('');}return 0;}```2. 输入输出爱心图案我们可以通过输入输出来实现一个交互式的爱心图案。
具体代码如下:```#include <stdio.h>int main(){int n, i, j, k, l;char c = '*';printf('请输入爱心大小(1~10):');scanf('%d', &n);for (i = 0; i <= 2 * n; i++) {for (j = 0; j <= 2 * n; j++) {k = abs(n - i);l = abs(n - j);if (k + l == n || k == l){printf('%c', c);}else{printf(' ');}}printf('');}return 0;}```3. 打印“爱心”图案我们还可以利用C语言中的图形库来实现一个精美的爱心图案。
c语言写的表白代码
c语言写的表白代码在程序员的世界里,用代码表达心意早已成为一种“时尚”。
而表白也是每个人都会经历的一段浪漫时光。
今天,我们就来学习一下如何用 C 语言写一段表白代码。
第一步,我们需要构思程序的框架,即程序的实现路径。
在此,我们定义一个字符串变量,用于存储表白的内容。
在 C 语言中,字符串变量需要使用字符数组来表示。
因此,我们需要定义一个字符数组来保存这个字符串。
代码如下:#include <stdio.h>int main(){char love[100];printf("请输入你的表白内容:\n");scanf("%s", love);printf("你的表白内容为:%s\n", love);return 0;}在上述代码中,我们定义了一个字符数组 love,用于存储用户输入的表白内容。
同时,使用 printf() 函数和 scanf() 函数打印输入提示和接收用户输入的表白内容。
第二步,我们需要将程序的实现路径拓展至界面上。
我们可以使用 ASCII 字符集中的特殊字符来制作简单的表情符号,增添程序的趣味性和可读性。
修改后的代码如下:#include <stdio.h>int main(){char love[100];printf("\n");printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");printf(" @@@@@@@@@@@@@@@@@@@@@\n");printf(" @@@@@@@@@@@@@@@@@@@@@@@@\n");printf(" @@@@@ Love You !@@@@@@@@@\n");printf(" @@@@@@@@@@@@@@@@@@@@@@@@\n");printf(" @@@@@@@@@@@@@@@@@@@@@@@@@@\n");printf(" @@@@@@@@@@@@@@@@@@@@@@@@@@@@\n"); printf(" @@@@@@@@@@@@@@@@@@@@@@@\n");printf("\n");printf("请输入你的表白内容:");scanf("%s", love);printf("你的表白内容为:%s\n", love);return 0;}在上述代码中,我们调用了 printf() 函数来打印 ASCII 字符集中的“ @}” 符号,来拓展界面的可读性和趣味性。
表白程序(C++)
菜鸟奉献你一个520表白神器爱情总是那么神圣,烂漫,每个人都会有无限的向往,即便是程序员(自我笑下),忽然我想起周星驰的那些话“曾经有一段爱情摆在我面前。
我希望是一万年”,于是我试着做了表白程序。
实现原理:原理比较的简单,主要是运用windows API来实现,程序初步实现的功能是显示文字,图像,歌曲(重复),燃放烟花(循环),程序的实现过程大概可以描述为烟花燃放的一个过程(初始化,上升,爆炸,循环),具体实现方法不再复述了,代码比较简单。
工具:VS2013 Eaxy(冬至版)[使用TC库,不是VC库,用Eaxy] 主要代码:#include "graphics.h"#include <conio.h>#include <math.h>#include <time.h>#include <stdio.h>#include <Mmsystem.h>#pragma comment ( lib, "Winmm.lib" )/***** 宏定义区******/#define NUM 13 // 烟花种类数量宏定义/***** 结构定义区**********/// 烟花结构struct FIRE{int r; // 当前爆炸半径int max_r; // 爆炸中心距离边缘最大半径int x, y; // 爆炸中心在窗口的坐标int cen_x, cen_y; // 爆炸中心相对图片左上角的坐标int width, height; // 图片的宽高int xy[240][240]; // 储存图片像素点bool show; // 是否绽放bool draw; // 开始输出像素点DWORD t1, t2, dt; // 绽放速度}Fire[NUM];// 烟花弹结构struct JET{int x, y; // 喷射点坐标int hx, hy; // 最高点坐标------将赋值给FIRE 里面的x, y int height; // 烟花高度bool shoot; // 是否可以发射DWORD t1, t2, dt; // 发射速度IMAGE img[2]; // 储存花弹一亮一暗图片byte n : 1; // 图片下标}Jet[NUM];/**** 函数申明区****/void Init(int); // 初始化烟花void Load(); // 加载烟花图片void Shoot(); // 发射烟花void Chose(DWORD&); // 筛选烟花void Style(DWORD&); // 发射样式void Show(DWORD*); // 绽放烟花// 主函数void main(){initgraph(1200, 800);srand(time(0));// 播放背景音乐mciSendString("open ./fire/bk.mp3 alias bk", 0, 0, 0);mciSendString("play bk repeat", 0, 0, 0);//setfillstyle(0);settextstyle(50, 0, "楷体");setcolor(YELLOW);outtextxy(480, 100, "My Dear");outtextxy(400, 200, "愿你悲伤有人分担!");outtextxy(400, 280, "愿你孤独有人陪伴!");getchar();cleardevice();settextstyle(25, 0, "楷体");outtextxy(400, 250, "曾经");outtextxy(400, 300, "有一份真挚的爱情摆在我的面前");outtextxy(400, 350, "我没有珍惜");outtextxy(400, 400, "直到失去了才后悔莫及");outtextxy(400, 450, "世间最痛苦的事情莫过于此");outtextxy(400, 500, "如果上天能给我一个在来一次的机会"); outtextxy(400, 550, "我会对那个女孩说");outtextxy(400, 600, "我爱你,一万年");outtextxy(700, 660, "——谢新明");getchar();DWORD t1 = timeGetTime(); // 筛选烟花计时DWORD st1 = timeGetTime(); // 播放花样计时DWORD* pMem = GetImageBuffer(); // 获取窗口显存指针for (int i = 0; i < NUM; i++) // 初始化烟花{Init(i);}Load(); // 将烟花图片信息加载进相应结构中BeginBatchDraw(); // 开始批量绘图while (!kbhit()){Sleep(10);// 随机选择4000 个像素点擦除for (int clr = 0; clr < 1000; clr++){for (int j = 0; j < 2; j++){int px1 = rand() % 1200;int py1 = rand() % 800;if (py1 < 799) // 防止越界pMem[py1 * 1200 + px1] = pMem[py1 * 1200 + px1 + 1] = BLACK;// 对显存赋值擦出像素点}}Chose(t1); // 筛选烟花Shoot(); // 发射烟花Show(pMem); // 绽放烟花Style(st1); // 花样发射FlushBatchDraw(); // 显示前面的所有绘图操作}}// 初始化烟花参数void Init(int i){// 分别为:烟花中心到图片边缘的最远距离、烟花中心到图片左上角的距离(x、y) 两个分量int r[13] = { 120, 120, 155, 123, 130, 147, 138, 138, 130, 135, 140, 132, 155 };int x[13] = { 120, 120, 110, 117, 110, 93, 102, 102, 110, 105, 100, 108, 110 };int y[13] = { 120, 120, 85, 118, 120, 103, 105, 110, 110, 120, 120, 104, 85 };/**** 初始化烟花*****/Fire[i].x = 0; // 烟花中心坐标Fire[i].y = 0;Fire[i].width = 240; // 图片宽Fire[i].height = 240; // 图片高Fire[i].max_r = r[i]; // 最大半径Fire[i].cen_x = x[i]; // 中心距左上角距离Fire[i].cen_y = y[i];Fire[i].show = false; // 是否绽放Fire[i].dt = 5; // 绽放时间间隔Fire[i].t1 = timeGetTime();Fire[i].r = 0; // 从0 开始绽放/**** 初始化烟花弹*****/Jet[i].x = -240; // 烟花弹左上角坐标Jet[i].y = -240;Jet[i].hx = -240; // 烟花弹发射最高点坐标Jet[i].hy = -240;Jet[i].height = 0; // 发射高度Jet[i].t1 = timeGetTime();Jet[i].dt = rand() % 10; // 发射速度时间间隔Jet[i].n = 0; // 烟花弹闪烁图片下标Jet[i].shoot = false; // 是否发射// 加载图片void Load(){/**** 储存烟花的像素点颜色****/IMAGE fm, gm;loadimage(&fm, "./fire/flower.jpg", 3120, 240);for (int i = 0; i < 13; i++){SetWorkingImage(&fm);getimage(&gm, i * 240, 0, 240, 240);SetWorkingImage(&gm);for (int a = 0; a < 240; a++)for (int b = 0; b < 240; b++)Fire[i].xy[a][b] = getpixel(a, b);}/**** 加载烟花弹************/IMAGE sm;loadimage(&sm, "./fire/shoot.jpg", 200, 50);for (int i = 0; i < 13; i++){SetWorkingImage(&sm);int n = rand() % 5;getimage(&Jet[i].img[0], n * 20, 0, 20, 50); // 暗getimage(&Jet[i].img[1], (n + 5) * 20, 0, 20, 50); // 亮}SetWorkingImage(); // 设置回绘图窗口}// 在一定范围内筛选可发射的烟花,并初始化发射参数,输出烟花弹到屏幕,播放声音void Chose(DWORD& t1){DWORD t2 = timeGetTime();if (t2 - t1 > 100){int n = rand() % 20;if (n < 13 && Jet[n].shoot == false && Fire[n].show == false){/**** 重置烟花弹,预备发射*****/Jet[n].x = rand() % 1200;Jet[n].y = rand() % 100 + 600;Jet[n].hx = Jet[n].x;Jet[n].hy = rand() % 400;Jet[n].height = Jet[n].y - Jet[n].hy;Jet[n].shoot = true;putimage(Jet[n].x, Jet[n].y, &Jet[n].img[Jet[n].n], SRCINVERT);/**** 播放每个烟花弹的声音*****/char c1[50], c2[30], c3[30];sprintf(c1, "open ./fire/shoot.mp3 alias s%d", n);sprintf(c2, "play s%d", n);sprintf(c3, "close n%d", n);mciSendString(c3, 0, 0, 0);mciSendString(c1, 0, 0, 0);mciSendString(c2, 0, 0, 0);}t1 = t2;}}// 扫描烟花弹并发射void Shoot(){for (int i = 0; i < 13; i++){Jet[i].t2 = timeGetTime();if (Jet[i].t2 - Jet[i].t1 > Jet[i].dt && Jet[i].shoot == true){/**** 烟花弹的上升*****/putimage(Jet[i].x, Jet[i].y, &Jet[i].img[Jet[i].n], SRCINVERT);if (Jet[i].y > Jet[i].hy).{Jet[i].n++;Jet[i].y -= 5;}putimage(Jet[i].x, Jet[i].y, &Jet[i].img[Jet[i].n], SRCINVERT);/**** 上升到高度的3 / 4,减速*****/if ((Jet[i].y - Jet[i].hy) * 4 < Jet[i].height)Jet[i].dt = rand() % 4 + 10;/**** 上升到最大高度*****/if (Jet[i].y <= Jet[i].hy){// 播放爆炸声char c1[50], c2[30], c3[30];sprintf(c1, "open ./fire/bomb.wav alias n%d", i);sprintf(c2, "play n%d", i);sprintf(c3, "close s%d", i);mciSendString(c3, 0, 0, 0);mciSendString(c1, 0, 0, 0);mciSendString(c2, 0, 0, 0);putimage(Jet[i].x, Jet[i].y, &Jet[i].img[Jet[i].n], SRCINVERT); // 擦掉烟花弹Fire[i].x = Jet[i].hx + 10;// 在烟花弹中间爆炸Fire[i].y = Jet[i].hy;// 在最高点绽放Fire[i].show = true; // 开始绽放Jet[i].shoot = false; // 停止发射}Jet[i].t1 = Jet[i].t2;}}}// 显示花样void Style(DWORD& st1){.DWORD st2 = timeGetTime();if (st2 - st1 > 20000) // 一首歌的时间{// 心形坐标int x[13] = { 60, 75, 91, 100, 95, 75, 60, 45, 25, 15, 25, 41, 60 };int y[13] = { 65, 53, 40, 22, 5, 4, 20, 4, 5, 22, 40, 53, 65 };for (int i = 0; i < NUM; i++){//cleardevice();/**** 规律分布烟花弹***/Jet[i].x = x[i] * 10;Jet[i].y = (y[i] + 75) * 10;Jet[i].hx = Jet[i].x;Jet[i].hy = y[i] * 10;Jet[i].height = Jet[i].y - Jet[i].hy;Jet[i].shoot = true;Jet[i].dt = 7;putimage(Jet[i].x, Jet[i].y, &Jet[i].img[Jet[i].n], SRCINVERT); // 显示烟花弹/**** 设置烟花参数***/Fire[i].x = Jet[i].x + 10;Fire[i].y = Jet[i].hy;Fire[i].show = false;Fire[i].r = 0;/**** 播放发射声音***/char c1[50], c2[30], c3[30];sprintf(c1, "open ./fire/shoot.mp3 alias s%d", i);sprintf(c2, "play s%d", i);sprintf(c3, "close n%d", i);mciSendString(c3, 0, 0, 0);mciSendString(c1, 0, 0, 0);mciSendString(c2, 0, 0, 0);}st1 = st2;}}// 绽放烟花void Show(DWORD* pMem)。
爱心代码编程c语言代码
爱心代码编程c语言代码
当谈到爱心代码编程,通常指的是通过绘制字符来形成一个爱心图案。
在C语言中,我们可以使用ASCII码来实现这个效果。
下面是一个示例代码:
c.
#include <stdio.h>。
int main() {。
printf(" \n");
printf(" \n");
printf(" \n");
printf(" \n");
printf(" \n");
printf(" \n");
printf(" \n");
printf(" \n");
printf(" \n");
printf(" \n");
printf(" \n");
return 0;
}。
这段代码会输出一个简单的爱心图案。
你可以根据需要进行修改和美化,例如改变图案的大小、颜色或者添加其他的装饰。
这只是一个基础的示例,你可以根据自己的需求进行进一步的扩展和改进。
希望这个简单的示例能够满足你的需求。
如果你有其他问题,我将很乐意为你解答。
用C编写一个送给女朋友的情人节小程序可爱!
⽤C编写⼀个送给⼥朋友的情⼈节⼩程序可爱!本⽂实例为⼤家分享了C编写送给⼥朋友的⼩程序,供⼤家参考,具体内容如下#include<iostream>#include<conio.h>#include<windows.h>#include<time.h>#include<stdio.h>using namespace std;#define wide 49#define gao 24#define high 6int yanhua[gao][wide],hang,lie,i,j,temp,pc,flag;char ch;////////////////////////////上升函数void SS(){void printchar();int midw1,midw,midw2;srand((int)time(NULL));for(hang=gao;hang>=high;hang--)//上升阶段{midw=wide/2+pc*2;midw1=wide-pc*6;midw2=wide/2-pc*6;yanhua[gao][midw]=10;yanhua[gao][midw1]=10;yanhua[gao][midw2]=10;system("cls");//清理屏幕printchar();if(hang<gao){int temp;for(temp=gao;temp>hang;temp--){if(temp<=hang+5){yanhua[temp][midw]=20;//产⽣尾巴yanhua[temp][midw1]=20;yanhua[temp][midw2]=20;}else{yanhua[temp][midw]=0;//清除尾巴yanhua[temp][midw1]=0;yanhua[temp][midw2]=0;}}yanhua[hang+1][midw]=10;//重设烟花头yanhua[hang+1][midw1]=10;yanhua[hang+1][midw2]=10;}if(hang==5){int temp;for(temp=gao;temp>hang;temp--)yanhua[temp][midw]=0;yanhua[hang+1][midw]=10;}Sleep(10);}}///////////////////////////////爆炸函数void BZ(){void printchar();void randnum();for(temp=1;temp<=3;temp++){randnum();system("cls");printchar();Sleep(30);}for(i=0;i<gao;i++){for(j=0;j<wide;j++)yanhua[i][j]=0;}}//////////////////////////////产⽣随机数函数void randnum(){srand((int)time(0));for(hang=0;hang<gao;hang++){for(lie=0;lie<wide;lie++){yanhua[hang][lie]=(int)((10*rand())/RAND_MAX);}}}///////////////////////////////输出图形函数void printchar(){for(i=0;i<gao;i++){for(j=0;j<wide;j++){if(yanhua[i][j]==0)cout<<" ";else if(yanhua[i][j]==10)cout<<"●";else if(yanhua[i][j]==20)cout<<"‖";else if(yanhua[i][j]==1)cout<<"*";else if(yanhua[i][j]==2)cout<<"·";else cout<<" ";}//输出烟花cout<<endl;}}////////////////////////倒计时函数void djs(){cout<<"精彩不容错过……";Sleep(1000);system("cls");void printchar();for(temp=3;temp>=1;temp--){switch(temp){case 1:for(i=2;i<=15;i++){for(j=wide/2;j<=wide/2+1;j++)yanhua[i][j]=1;}break;case 2:for(i=2;i<=15;i++){switch(i){case 2:case 3:case 8:case 9:case 14:case 15:for(j=wide/2-7;j<=wide/2+8;j++)yanhua[i][j]=1;break; case 4:case 5:case 6:case 7:for(j=wide/2+7;j<=wide/2+8;j++)yanhua[i][j]=1;break; default:for(j=wide/2-7;j<=wide/2-6;j++)yanhua[i][j]=1;break; }}break;case 3:for(i=2;i<=15;i++){switch(i){case 2:case 3:case 8:case 9:case 14:case 15:for(j=wide/2-7;j<=wide/2+8;j++)yanhua[i][j]=1;break; default:for(j=wide/2+7;j<=wide/2+8;j++)yanhua[i][j]=1;break; }}break;}printchar();Sleep(1000);for(i=0;i<gao;i++){for(j=0;j<wide;j++)yanhua[i][j]=0;}system("cls");}cout<<"烟花开始";Sleep(500);}/////////////////////////流星⾬void lxy(){int flag,n;srand((int)time(0));for(hang=0;hang<gao;hang++){for(lie=0;lie<wide;lie++){yanhua[hang][lie]=(int)((100*rand())/RAND_MAX);}}for(flag=0;flag<=4;flag++){for(temp=1;temp<wide;temp++){for(i=0,n=0;i<gao;i++){for(j=wide-1;j>=0;j--){switch(yanhua[i][j]){case 56:{cout<<"★";n++;if(n%6==0){yanhua[i-2][j-1]=56;yanhua[i][j]=0;}else{yanhua[i][j+i]=56;yanhua[i][j]=0;}Sleep(0);}break;case 0:{cout<<"--";yanhua[i][j]=1;}break;default:cout<<" ";}}}system("cls");}Sleep(100);}}//////////////////////////////输出⽂字void printword(){char ch;cout<<endl;char Word1[80]="送你⼀只⼩熊维尼,让它每天陪着你,和你分享他的蜂蜜,⼀直甜到你的⼼⾥。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
菜鸟奉献你一个520表白神器爱情总是那么神圣,烂漫,每个人都会有无限的向往,即便是程序员(自我笑下),忽然我想起周星驰的那些话“曾经有一段爱情摆在我面前。
我希望是一万年”,于是我试着做了表白程序。
实现原理:原理比较的简单,主要是运用windows API来实现,程序初步实现的功能是显示文字,图像,歌曲(重复),燃放烟花(循环),程序的实现过程大概可以描述为烟花燃放的一个过程(初始化,上升,爆炸,循环),具体实现方法不再复述了,代码比较简单。
工具:VS2013 Eaxy(冬至版)[使用TC库,不是VC库,用Eaxy] 主要代码:#include "graphics.h"#include <conio.h>#include <math.h>#include <time.h>#include <stdio.h>#include <Mmsystem.h>#pragma comment ( lib, "Winmm.lib" )/***** 宏定义区 ******/#define NUM 13 // 烟花种类数量宏定义/***** 结构定义区 **********/// 烟花结构struct FIRE{int r; // 当前爆炸半径int max_r; // 爆炸中心距离边缘最大半径int x, y; // 爆炸中心在窗口的坐标int cen_x, cen_y; // 爆炸中心相对图片左上角的坐标int width, height; // 图片的宽高int xy[240][240]; // 储存图片像素点bool show; // 是否绽放bool draw; // 开始输出像素点DWORD t1, t2, dt; // 绽放速度}Fire[NUM];// 烟花弹结构struct JET{int x, y; // 喷射点坐标int hx, hy; // 最高点坐标------将赋值给 FIRE 里面的 x, yint height; // 烟花高度bool shoot; // 是否可以发射DWORD t1, t2, dt; // 发射速度IMAGE img[2]; // 储存花弹一亮一暗图片byte n : 1; // 图片下标}Jet[NUM];/**** 函数申明区 ****/void Init(int); // 初始化烟花void Load(); // 加载烟花图片void Shoot(); // 发射烟花void Chose(DWORD&); // 筛选烟花void Style(DWORD&); // 发射样式void Show(DWORD*); // 绽放烟花// 主函数void main(){initgraph(1200, 800);srand(time(0));// 播放背景音乐mciSendString("open ./fire/bk.mp3 alias bk", 0, 0, 0);mciSendString("play bk repeat", 0, 0, 0);//setfillstyle(0);settextstyle(50, 0, "楷体");setcolor(YELLOW);outtextxy(480, 100, "My Dear");outtextxy(400, 200, "愿你悲伤有人分担!");outtextxy(400, 280, "愿你孤独有人陪伴!");getchar();cleardevice();settextstyle(25, 0, "楷体");outtextxy(400, 250, "曾经");outtextxy(400, 300, "有一份真挚的爱情摆在我的面前");outtextxy(400, 350, "我没有珍惜");outtextxy(400, 400, "直到失去了才后悔莫及");outtextxy(400, 450, "世间最痛苦的事情莫过于此");outtextxy(400, 500, "如果上天能给我一个在来一次的机会");outtextxy(400, 550, "我会对那个女孩说");outtextxy(400, 600, "我爱你,一万年");outtextxy(700, 660, "——谢新明");getchar();DWORD t1 = timeGetTime(); // 筛选烟花计时DWORD st1 = timeGetTime(); // 播放花样计时DWORD* pMem = GetImageBuffer(); // 获取窗口显存指针for (int i = 0; i < NUM; i++) // 初始化烟花{Init(i);}Load(); // 将烟花图片信息加载进相应结构中BeginBatchDraw(); // 开始批量绘图while (!kbhit()){Sleep(10);// 随机选择 4000 个像素点擦除for (int clr = 0; clr < 1000; clr++){for (int j = 0; j < 2; j++){int px1 = rand() % 1200;int py1 = rand() % 800;if (py1 < 799) // 防止越界pMem[py1 * 1200 + px1] = pMem[py1 * 1200 + px1 + 1] = BLACK;// 对显存赋值擦出像素点}}Chose(t1); // 筛选烟花Shoot(); // 发射烟花Show(pMem); // 绽放烟花Style(st1); // 花样发射FlushBatchDraw(); // 显示前面的所有绘图操作}}// 初始化烟花参数void Init(int i){// 分别为:烟花中心到图片边缘的最远距离、烟花中心到图片左上角的距离 (x、y) 两个分量int r[13] = { 120, 120, 155, 123, 130, 147, 138, 138, 130, 135, 140, 132, 155 };int x[13] = { 120, 120, 110, 117, 110, 93, 102, 102, 110, 105, 100, 108, 110 };int y[13] = { 120, 120, 85, 118, 120, 103, 105, 110, 110, 120, 120, 104, 85 };/**** 初始化烟花 *****/Fire[i].x = 0; // 烟花中心坐标Fire[i].y = 0;Fire[i].width = 240; // 图片宽Fire[i].height = 240; // 图片高Fire[i].max_r = r[i]; // 最大半径Fire[i].cen_x = x[i]; // 中心距左上角距离Fire[i].cen_y = y[i];Fire[i].show = false; // 是否绽放Fire[i].dt = 5; // 绽放时间间隔Fire[i].t1 = timeGetTime();Fire[i].r = 0; // 从 0 开始绽放/**** 初始化烟花弹 *****/Jet[i].x = -240; // 烟花弹左上角坐标Jet[i].y = -240;Jet[i].hx = -240; // 烟花弹发射最高点坐标Jet[i].hy = -240;Jet[i].height = 0; // 发射高度Jet[i].t1 = timeGetTime();Jet[i].dt = rand() % 10; // 发射速度时间间隔Jet[i].n = 0; // 烟花弹闪烁图片下标Jet[i].shoot = false; // 是否发射}// 加载图片void Load(){/**** 储存烟花的像素点颜色 ****/IMAGE fm, gm;loadimage(&fm, "./fire/flower.jpg", 3120, 240);for (int i = 0; i < 13; i++){SetWorkingImage(&fm);getimage(&gm, i * 240, 0, 240, 240);SetWorkingImage(&gm);for (int a = 0; a < 240; a++)for (int b = 0; b < 240; b++)Fire[i].xy[a][b] = getpixel(a, b);}/**** 加载烟花弹 ************/IMAGE sm;loadimage(&sm, "./fire/shoot.jpg", 200, 50);for (int i = 0; i < 13; i++){SetWorkingImage(&sm);int n = rand() % 5;getimage(&Jet[i].img[0], n * 20, 0, 20, 50); // 暗getimage(&Jet[i].img[1], (n + 5) * 20, 0, 20, 50); // 亮}SetWorkingImage(); // 设置回绘图窗口}// 在一定范围内筛选可发射的烟花,并初始化发射参数,输出烟花弹到屏幕,播放声音void Chose(DWORD& t1){DWORD t2 = timeGetTime();if (t2 - t1 > 100){int n = rand() % 20;if (n < 13 && Jet[n].shoot == false && Fire[n].show == false){/**** 重置烟花弹,预备发射 *****/Jet[n].x = rand() % 1200;Jet[n].y = rand() % 100 + 600;Jet[n].hx = Jet[n].x;Jet[n].hy = rand() % 400;Jet[n].height = Jet[n].y - Jet[n].hy;Jet[n].shoot = true;putimage(Jet[n].x, Jet[n].y, &Jet[n].img[Jet[n].n], SRCINVERT);/**** 播放每个烟花弹的声音 *****/char c1[50], c2[30], c3[30];sprintf(c1, "open ./fire/shoot.mp3 alias s%d", n);sprintf(c2, "play s%d", n);sprintf(c3, "close n%d", n);mciSendString(c3, 0, 0, 0);mciSendString(c1, 0, 0, 0);mciSendString(c2, 0, 0, 0);}t1 = t2;}}// 扫描烟花弹并发射void Shoot(){for (int i = 0; i < 13; i++){Jet[i].t2 = timeGetTime();if (Jet[i].t2 - Jet[i].t1 > Jet[i].dt && Jet[i].shoot == true){/**** 烟花弹的上升 *****/putimage(Jet[i].x, Jet[i].y, &Jet[i].img[Jet[i].n], SRCINVERT);if (Jet[i].y > Jet[i].hy){Jet[i].n++;Jet[i].y -= 5;}putimage(Jet[i].x, Jet[i].y, &Jet[i].img[Jet[i].n], SRCINVERT);/**** 上升到高度的 3 / 4,减速 *****/if ((Jet[i].y - Jet[i].hy) * 4 < Jet[i].height)Jet[i].dt = rand() % 4 + 10;/**** 上升到最大高度 *****/if (Jet[i].y <= Jet[i].hy){// 播放爆炸声char c1[50], c2[30], c3[30];sprintf(c1, "open ./fire/bomb.wav alias n%d", i);sprintf(c2, "play n%d", i);sprintf(c3, "close s%d", i);mciSendString(c3, 0, 0, 0);mciSendString(c1, 0, 0, 0);mciSendString(c2, 0, 0, 0);putimage(Jet[i].x, Jet[i].y, &Jet[i].img[Jet[i].n], SRCINVERT); // 擦掉烟花弹Fire[i].x = Jet[i].hx + 10;// 在烟花弹中间爆炸Fire[i].y = Jet[i].hy;// 在最高点绽放Fire[i].show = true; // 开始绽放Jet[i].shoot = false; // 停止发射}Jet[i].t1 = Jet[i].t2;}}}// 显示花样void Style(DWORD& st1){DWORD st2 = timeGetTime();if (st2 - st1 > 20000) // 一首歌的时间{// 心形坐标int x[13] = { 60, 75, 91, 100, 95, 75, 60, 45, 25, 15, 25, 41, 60 };int y[13] = { 65, 53, 40, 22, 5, 4, 20, 4, 5, 22, 40, 53, 65 };for (int i = 0; i < NUM; i++){//cleardevice();/**** 规律分布烟花弹 ***/Jet[i].x = x[i] * 10;Jet[i].y = (y[i] + 75) * 10;Jet[i].hx = Jet[i].x;Jet[i].hy = y[i] * 10;Jet[i].height = Jet[i].y - Jet[i].hy;Jet[i].shoot = true;Jet[i].dt = 7;putimage(Jet[i].x, Jet[i].y, &Jet[i].img[Jet[i].n], SRCINVERT); // 显示烟花弹/**** 设置烟花参数 ***/Fire[i].x = Jet[i].x + 10;Fire[i].y = Jet[i].hy;Fire[i].show = false;Fire[i].r = 0;/**** 播放发射声音 ***/char c1[50], c2[30], c3[30];sprintf(c1, "open ./fire/shoot.mp3 alias s%d", i);sprintf(c2, "play s%d", i);sprintf(c3, "close n%d", i);mciSendString(c3, 0, 0, 0);mciSendString(c1, 0, 0, 0);mciSendString(c2, 0, 0, 0);}st1 = st2;}}// 绽放烟花void Show(DWORD* pMem){// 烟花个阶段绽放时间间隔,制作变速绽放效果int drt[16] = { 5, 5, 5, 5, 5, 6, 25, 25, 25, 25, 55, 55, 55, 55, 55 };for (int i = 0; i < NUM; i++){Fire[i].t2 = timeGetTime();// 增加爆炸半径,绽放烟花,增加时间间隔做变速效果if (Fire[i].t2 - Fire[i].t1 > Fire[i].dt && Fire[i].show == true){if (Fire[i].r < Fire[i].max_r){Fire[i].r++;Fire[i].dt = drt[Fire[i].r / 10];Fire[i].draw = true;}if (Fire[i].r >= Fire[i].max_r - 1){Fire[i].draw = false;Init(i);}Fire[i].t1 = Fire[i].t2;}// 如果该号炮花可爆炸,根据当前爆炸半径画烟花,颜色值接近黑色的不输出。