资源简介

这是一个用C语言写的连连看游戏的源代码,十分完整

资源截图

代码片段和文件信息

char KeyPress(void)
{
char keyp=0;
union REGS regs0;
regs0.h.ah=1;
int86(0x16®s0®s0);
if((regs0.x.flags & 0x0040)==0)
{
regs0.h.ah=0;
int86(0x16®s0®s0);
keyp=regs0.h.al;
KeyScan=regs0.h.ah;
}
return(keyp);
}

void OpenBmpFile(void)
{
char FileName[20];
strcpy(FileNameBMP_FILE);
fp = fopen(FileName“rb“); /* open for read bit mode */
if ( fp == NULL)
{ printf(“\nFile %s open fail...\n“FileName);
getch();
exit(1);
}
}
void GetFileInfo(void)
{
int i;
unsigned char ch1ch2ch3ch4;

fseek(fp0SEEK_SET);
ch1 = fgetc(fp);
ch2 = fgetc(fp);
if(ch1!=0x42||ch2!=0x4d) /* must be 0x420x4d = ‘BM‘ */
{
printf(“\nFile format error must be BMP file\n“);
getch();
exit(2);
}
fseek(fp0x0aSEEK_SET);
ch1 = fgetc(fp);
ch2 = fgetc(fp);
ch3 = fgetc(fp);
ch4 = fgetc(fp);
FileHead.bfOffBits = ch1+ch2*0x100L+ch3*0x10000L+ch4*0x1000000L;
fseek(fp0x12SEEK_SET);
ch1 = fgetc(fp);
ch2 = fgetc(fp);
ch3 = fgetc(fp);
ch4 = fgetc(fp);
InfoHead.biWidth = ch1+ch2*0x100L+ch3*0x10000L+ch4*0x1000000L;
fseek(fp0x16SEEK_SET);
ch1 = fgetc(fp);
ch2 = fgetc(fp);
ch3 = fgetc(fp);
ch4 = fgetc(fp);
InfoHead.biHeight = ch1+ch2*0x100L+ch3*0x10000L+ch4*0x1000000L;
/* FileHead.bfOffBits = 0x76;
InfoHead.biWidth = 0x29f;
InfoHead.biHeight = 0x1df; */
fseek(fp0x1cSEEK_SET);
ch1 = fgetc(fp);
ch2 = fgetc(fp);
if(ch1!=0x04||ch2!=0x00) /* must be 4 */
{
printf(“\nFile format error must be 16 colors (4 bits) BMP file\n“);
getch();
exit(3);
}
InfoHead.biBitCount = 4;
DataSizePerLine = (InfoHead.biWidth*InfoHead.biBitCount+31)/8;
DataSizePerLine= (DataSizePerLine/4)*4;
OneLine = malloc(DataSizePerLine);
for(i=0;i}

void GetUnit(void)
{
int read_from_xread_from_y;
int read_to_xread_to_y;
int ixiyuxuy;
long FileLocation;
unsigned char ch;

read_from_y = START_FROM_Y + (unity-1)*UNIT_HIGH_ALL + HIGH_FROM + UNIT_HIGH - 1;
read_to_y = START_FROM_Y + (unity-1)*UNIT_HIGH_ALL + HIGH_FROM;
read_from_x = START_FROM_X + (unitx-1)*UNIT_WIDE_ALL + WIDE_FROM;
read_to_x = START_FROM_X + (unitx-1)*UNIT_WIDE_ALL + WIDE_FROM + UNIT_WIDE - 1;

for(iy=read_from_yuy=0;iy>=read_to_y;iy--uy++)
{
FileLocation = FileHead.bfOffBits + DataSizePerLine*(InfoHead.biHeight-1-iy);
fseek(fpFileLocationSEEK_SET);
fread(OneLineDataSizePerLine1fp);
for(ix=read_from_xux=0;ix<=read_to_x;ix++ux++)
{
ch = OneLine[ix/2];
if(ix%2) OneUnit[uy][ux] = ch&0x0f; /* it is odd exp: 17 */
else OneUnit[uy][ux] = (ch&0xf0)>>4;
}
} /* of iy */
}

int ColorConvert(int ccolor)
/*
表3 有关屏幕颜色的符号常数表 
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 
  符号常数      数值     含义           符号常数      数值     含义 
─────────────────────────────────── 
  BLACK          0       黑色           DARKGRAY       8       深灰 
  BLUE           1       兰色           LIGHTBLUE      9       深兰 
  GREEN   

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      43405  2004-12-03 21:44  连连看\lian.C

     文件       8865  2004-11-22 23:08  连连看\lian.h

     文件      25729  2004-11-17 23:04  连连看\lianP.c

     目录          0  2011-11-10 23:07  连连看

----------- ---------  ---------- -----  ----

                77999                    4


评论

共有 条评论