资源简介
这是一个用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
- 上一篇:mfcc的C程序
- 下一篇:空间后方交会MFC版,C++源代码
相关资源
- 空间后方交会MFC版,C++源代码
- spath(A*算法的C语言源代码)
- 银行家算法C语言实现源文件
- UDP实现的可靠文件传输源代码
- C语言程序设计,谭浩强,清华大学,
- 基于51单片机多节点RS485通信带Protue
- c语言描述超松弛算法的源代码
- 最简单的PI算法(C语言)-用于控制电
- 专升本C语言
- 实序列快速傅里叶变换C语言源代码
- Linux 串口源代码纯C++
- xrc C语言解释器
- udp 聊天室 基于linux c语言实现
- 单片机 抢答器 C语言
- cvtColor函数的源代码
- c语言图书管理系统源码 c语言图书管
- 用c语言编写成绩管理系统
- C语言完成NTFS系统的文件定位和打印簇
- 哈弗曼编码的实验报告
- OPC客户端源代码
- at89c51单片机+矩阵键盘编写的计算器
- 用C语言实现银行家算法
- 重言式判别程序源代码
- c语言写的搜索引擎完整版
- 信道容量的迭代算法的C语言实现
- 图像处理算法源代码,用C语言完成
- 约瑟夫死亡游戏C语言代码
- 拉普拉斯算子边缘检测C语言代码
- 三次样条插值算法C++源代码
- 实矩阵与复矩阵的LU分解C++源代码
评论
共有 条评论