#include "Conio.h"#include "graphics.h"#include "stdio.h"#include "stdlib.h"#include "bios.h"#include "math.h" struct cir /*存放礼花的位置*/{ int x; int y;}place; void initgr(void) /* BGI初始化 */{ int gd=DETECT,gm=0; initgraph(&gd,&gm,"");} void up() /*礼花炮上升*/{ int aimy; randomize(); place.x=random(440)+100; /*设定礼花的范围*/ place.y=470; aimy=random(300)+60; setlinestyle(0,0,1); setcolor(WHITE); circle(place.x,place.y,3); while(place.y!=aimy) /*礼花的上升过程*/ { setcolor(BLACK); circle(place.x,place.y,3); place.y--; setcolor(WHITE); circle(place.x,place.y,3); delay(1000); } setcolor(BLACK); circle(place.x,place.y,3);} shan() /*礼花形状一*/ { int j,n1,x,t1=1,y; int p_color; for(j=0;j<400;j++) { n1=rand()%2; t1=pow(-1,n1); x=place.x+t1*(rand()%100); n1=rand()%2; t1=pow(-1,n1); y=place.y+t1*(rand()%100); if(x<35) x=35; /*限制礼花越过窗体*/ if(x>getmaxx()-35) x=getmaxx()-35; if(y<5) y=5; p_color=rand()%15; setlinestyle(0,0,3); setcolor(p_color); line(place.x,place.y,x,y); delay(1000); setcolor(BLACK); line(place.x,place.y,x,y); } } ceng() /*礼花形状二*/{ float x,y,r; int i; int c_color; float k; k=2*3.14/60; for(r=10;r<100;r++) { for(i=0;i<60;i++) { x=r*sin(k*i)+place.x; y=r*cos(k*i)+place.y; if(x<35) x=35; if(x>getmaxx()-35) x=getmaxx()-35; if(y<5) y=5; c_color=rand()%15; putpixel(x,y,c_color); delay(80); } } for(r=10;r<100;r++) { for(i=0;i<60;i++) { x=r*sin(k*i)+place.x; y=r*cos(k*i)+place.y; if(x<35) x=35; if(x>getmaxx()-35) x=getmaxx()-35; if(y<5) y=5; putpixel(x,y,BLACK); delay(60); } }} dian() /*礼花形状三*/{ int i,j,r; float x[500],y[500]; float k; int c_color; k=2*3.14/60; for(j=0;j<500;j++) { i=rand()%60; r=rand()%100; x[j]=r*sin(k*i)+place.x; y[j]=r*cos(k*i)+place.y; if(x[j]<35) x[j]=35; if(x[j]>getmaxx()-35) x[j]=getmaxx()-35; if(y[j]<5) y[j]=5; c_color=rand()%15; setcolor(c_color); circle(x[j],y[j],1); delay(1500); } for(j=0;j<500;j++) { setcolor(BLACK); circle(x[j],y[j],1); }}void bomb() /*礼花盛开*/{ int r1,i,n,t=1,q=1,k=1; int pointX,pointY,point_color; setcolor(YELLOW); /*-------------这个过程模拟礼花爆炸瞬间的状态-----------------*/ for(r1=1;r1<=4;r1++) { circle(place.x,place.y,r1); delay(1000); } delay(3000); setcolor(RED); for(r1=4;r1<=6;r1++) { circle(place.x,place.y,r1); delay(1000); } delay(3000); setcolor(BLACK); for(r1=6;r1>=1;r1--) { circle(place.x,place.y,r1); delay(1000); } for(i=1;i<=20;i++) { point_color=rand()%15; n=rand()%2; t=pow(-1,n); pointX=(t*(rand()%6)+place.x); n=rand()%2; t=pow(-1,n); pointY=(t*(rand()%6)+place.y); putpixel(pointX,pointY,point_color); delay(2000); putpixel(pointX,pointY,BLACK); }/*----------------------------------------*/ n=rand()%3; switch(n) /*随机盛开不同的厉害*/ { case 0: shan(); break; case 1: ceng(); break; case 2: dian(); break; default: break; }} fengmian() /*封面程序*/{ int i,j=0; while(1) /**/ { settextstyle(0,0,4); /*设置文字输出模式*/ for(i=1;i<=15;i++) { setcolor(i); outtextxy(100,180,"HAPPY NEW YEAR"); /*新年快乐*/ delay(10000); } j++; if(j>5) break; } cleardevice();}main(){ initgr(); fengmian(); setbkcolor(BLACK); /*绘制窗体*/ setcolor(YELLOW); setfillstyle(SOLID_FILL,9); rectangle(0,0,getmaxx(),getmaxy()); rectangle(1,1,getmaxx()-1,getmaxy()-1); rectangle(2,2,30,getmaxy()-2); rectangle(getmaxx()-32,2,getmaxx()-2,getmaxy()-2); while(!kbhit()) /*进入礼花程序*/ { up(); bomb(); } getch(); closegraph(); }

评论