2024年4月11日发(作者:)

/**********包涵到头文件*********/

#include

#include

#include

#include

#include

#include

#include

/**********宏定义*********/

/*********键盘控制 键盘扫描码**********/

#define LEFT 0x4b00

#define RIGHT 0x4d00

#define DOWN 0x5000

#define UP 0x4800

#define ESC 0x011b

#define L_SHEFT 0x01

#define SPACE 0x3920

#define LOWERF 0x2166

#define UPPERF 0x2146

#define LOWERA 0x1e61

#define UPPERA 0x1e41

#define LOWERQ 0x1071

#define UPPERQ 0x1051

#define ENTER 0x1c0d

#define ONE 0x4f31

#define TWO 0x5032

#define THREE 0x5133

#define FOUR 0x4b34

#define FIVE 0x4c35

#define SIX 0x4d36

#define SEVEN 0x4737

#define EIGHT 0x4838

#define NINE 0x4939

#define O 0x5230

#define PLUS 0x4e2b

#define JIAN 0x4a2d

/**********全局变量*********/

int rain_Num;

int rain_v;

int rain_wind;

int rain_len;

int key;

int big;

1 / 14

int m;

int curx;

int cury;

int thunder[6][2]={{10,20},{-10,0},{10,20},{-25,-25},{15,0},{0,-15}};

/**********定义结构*************/

struct rainDrop *head;

/*********雨滴 雨圈 雷电数据 结构体链表**********/

struct rainDrop

{

int startX,curX,startY,curY;

int flag;

int endX;

int endY;

int rainColor;

int status;

int flagR;

int curR;

int thunderX1,thunderX2,thunderY1,thunderY2;

int a,b;

struct rainDrop *next;

};

/*********初始化画布**********/

/*********参数void**********/

/*********return无**********/

void initgraphics(void)

{

int gmode,gdriver;

gdriver=DETECT;

initgraph(&gdriver,&gmode,"");

}

/*********创建初始化头结点**********/

/*********返回指针p**********/

struct rainDrop *creatDrop(void)

{

struct rainDrop *p;

p=(struct rainDrop *)malloc(sizeof(struct rainDrop));

p->startX=random(640);

p->startY=random(430);

p->flag=430+rand()%50;

p->curX=p->startX-(rain_wind*5);

p->curY=p->startY+rain_len;

p->rainColor=random(15);

p->status=0;

2 / 14