资源简介
这是一个用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++源代码
相关资源
- C++中头文件与源文件的作用详解
- C语言代码高亮html输出工具
- 猜数字游戏 c语言代码
- C语言课程设计
- 数字电位器C语言程序
- CCS FFT c语言算法
- 使用C语言编写的病房管理系统
- 通信过程中的RS编译码程序(c语言)
- 计算机二级C语言上机填空,改错,编
- 用回溯法解决八皇后问题C语言实现
- 简易教务管理系统c语言开发文档
- 操作系统课设 读写者问题 c语言实现
- 小波变换算法 c语言版
- C流程图生成器,用C语言代码 生成C语
- 3des加密算法C语言实现
- 简单的C语言点对点聊天程序
- 单片机c语言源程序(51定时器 八个按
- 个人日常财务管理系统(C语言)
- c语言电子商务系统
- 小甲鱼C语言课件 源代码
- 将图片转换为C语言数组的程序
- C语言实现的一个内存泄漏检测程序
- DES加密算法C语言实现
- LINUX下命令行界面的C语言细胞游戏
- 用单片机控制蜂鸣器播放旋律程序(
- 学校超市选址问题(数据结构C语言版
- 电子时钟 有C语言程序,PROTEUS仿真图
- 尚观培训linux许巍老师关于c语言的课
- 算符优先语法分析器(C语言编写)
- 基于C语言的密码锁程序
评论
共有 条评论