礼花屏保 源代码

#include <stdio.h>
#include <conio.h>
#include <dos.h>
#include <graphics.h>
#include <math.h>
#include <bios.h>
#include<stdlib.h>

void beginning_f(void)/*礼花*/
{
int d=DETECT;    /*对图形显示器自动检测*/
int m;
int maxx=0, maxy=0, midx=0, midy=0, a=0, b=0, x=0, y=0, k=0;
initgraph(&d, &m, "");    /*初始化图形系统 */
maxx=get_maxx(), maxy=get_maxy(), midx=maxx/3, midy=maxy/3;
randomize();/*重复随机数的序列*/
while(bioskey(1)==0)   /*完成直接键盘操作*/
{
x=100;
y=60;
for(b=-150;b<=150;b+=10)   /*礼花向下移动的像位素*/
{
k=random(20);            /*使半径为20个像素的礼花随机出现*/
if(k==0)k=1;
for(a=0;a<=60;a++)
{
{
putpixel((midx+a)+b, (midy+a)+b, k);     /*画像素点函数 */

putpixel((midx+a)+b, (midy-a)+b, k);     /*圆心向右移动*/
putpixel((midx-a)+b, (midy+a)+b, k);    
putpixel((midx-a)+b, (midy-a)+b, k);}
putpixel((midx)+b, (midy+a)+b, k+12);
putpixel((midx)+b, (midy-a)+b, k+12);
putpixel((midx+a)+b, (midy)+b, k+12);
putpixel((midx-a)+b, (midy)+b, k+12);

putpixel((midx+a)+b+x, (midy+a)+b+y, k);
putpixel((midx+a)+b+x, (midy-a)+b+y, k);
putpixel((midx-a)+b+x, (midy+a)+b+y, k);
putpixel((midx-a)+b+x, (midy-a)+b+y, k);
putpixel((midx)+b+x, (midy+a)+b+y, k+12);
putpixel((midx)+b+x, (midy-a)+b+y, k+12);
putpixel((midx+a)+b+x, (midy)+b+y, k+12);
putpixel((midx-a)+b+x, (midy)+b+y, k+12);

putpixel((midx+a)+b-x, (midy+a)+b-y, k);
putpixel((midx+a)+b-x, (midy-a)+b-y, k);
putpixel((midx-a)+b-x, (midy+a)+b-y, k);
putpixel((midx-a)+b-x, (midy-a)+b-y, k);
putpixel((midx)+b-x, (midy+a)+b-y, k+12);
putpixel((midx)+b-x, (midy-a)+b-y, k+12);
putpixel((midx+a)+b-x, (midy)+b-y, k+12);
putpixel((midx-a)+b-x, (midy)+b-y, k+12);

putpixel((midx+a)+b+x, (midy+a)+b-y, k);
putpixel((midx+a)+b+x, (midy-a)+b-y, k);
putpixel((midx-a)+b+x, (midy+a)+b-y, k);
putpixel((midx-a)+b+x, (midy-a)+b-y, k);
putpixel((midx)+b+x, (midy+a)+b-y, k+12);
putpixel((midx)+b+x, (midy-a)+b-y, k+12);
putpixel((midx+a)+b+x, (midy)+b-y, k+12);
putpixel((midx-a)+b+x, (midy)+b-y, k+12);

putpixel((midx+a)+b-x, (midy+a)+b+y, k);
putpixel((midx+a)+b-x, (midy-a)+b+y, k);
putpixel((midx-a)+b-x, (midy+a)+b+y, k);
putpixel((midx-a)+b-x, (midy-a)+b+y, k);
putpixel((midx)+b-x, (midy+a)+b+y, k+12);
putpixel((midx)+b-x, (midy-a)+b+y, k+12);
putpixel((midx+a)+b-x, (midy)+b+y, k+12);
putpixel((midx-a)+b-x, (midy)+b+y, k+12);
/*beginning if(a<36)*/

circle((midx+a)+b, (midy+a)+b, k);
circle((midx+a)+b, (midy-a)+b, k);
circle((midx-a)+b, (midy+a)+b, k);
circle((midx-a)+b, (midy-a)+b, k);
circle((midx)+b, (midy+a)+b, k+12);
circle((midx)+b, (midy-a)+b, k+12);
circle((midx+a)+b, (midy)+b, k+12);
circle((midx-a)+b, (midy)+b, k+12);

circle((midx+a)+b+x, (midy+a)+b+y, k);
circle((midx+a)+b+x, (midy-a)+b+y, k);
circle((midx-a)+b+x, (midy+a)+b+y, k);
circle((midx-a)+b+x, (midy-a)+b+y, k);
circle((midx)+b+x, (midy+a)+b+y, k+12);
circle((midx)+b+x, (midy-a)+b+y, k+12);
circle((midx+a)+b+x, (midy)+b+y, k+12);
circle((midx-a)+b+x, (midy)+b+y, k+12);

circle((midx+a)+b-x, (midy+a)+b-y, k);
circle((midx+a)+b-x, (midy-a)+b-y, k);
circle((midx-a)+b-x, (midy+a)+b-y, k);
circle((midx-a)+b-x, (midy-a)+b-y, k);
circle((midx)+b-x, (midy+a)+b-y, k+12);
circle((midx)+b-x, (midy-a)+b-y, k+12);
circle((midx+a)+b-x, (midy)+b-y, k+12);
circle((midx-a)+b-x, (midy)+b-y, k+12);

circle((midx+a)+b+x, (midy+a)+b-y, k);
circle((midx+a)+b+x, (midy-a)+b-y, k);
circle((midx-a)+b+x, (midy+a)+b-y, k);
circle((midx-a)+b+x, (midy-a)+b-y, k);
circle((midx)+b+x, (midy+a)+b-y, k+12);
circle((midx)+b+x, (midy-a)+b-y, k+12);
circle((midx+a)+b+x, (midy)+b-y, k+12);
circle((midx-a)+b+x, (midy)+b-y, k+12);

circle((midx+a)+b-x, (midy+a)+b+y, k);
circle((midx+a)+b-x, (midy-a)+b+y, k);
circle((midx-a)+b-x, (midy+a)+b+y, k);
circle((midx-a)+b-x, (midy-a)+b+y, k);
circle((midx)+b-x, (midy+a)+b+y, k+12);
circle((midx)+b-x, (midy-a)+b+y, k+12);
circle((midx+a)+b-x, (midy)+b+y, k+12);
circle((midx-a)+b-x, (midy)+b+y, k+12);
delay(30);                                /*将礼花暂停30毫秒*/
cleardevice();                            /*清除图形屏幕 */
}
}
}
closegraph();                             /*关闭图形系统*/
}

void main(void)
{
int nChoice;                             
do
{
printf("/t1. beginning/n");
printf("/t2. EXIT/n");
scanf("%d",&nChoice);
switch(nChoice)
{
case 1:
beginning_f();
break;
case 2:
break;
default:
printf("input again/n");
}
}while(nChoice!=2);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值