- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
/*
*俄罗斯方块源程序
*/
#includestdio.h#includestdlib.h#includedos.h
#includegraphics.h/*图形函数库*/
/*定义按键码*/
#defineVK_LEFT 0x4b00#defineVK_RIGHT0x4d00#defineVK_DOWN 0x5000#defineVK_UP 0x4800#defineVK_ESC 0x011b
#defineTIMER0x1c /*设置中断号*/
/*定义常量*/
#defineMAX_BOX19 /*总共有19种各形态的方块*/#defineBSIZE20 /*方块的边长是20个象素*/#defineSys_x160 /*显示方块界面的左上角x座标*/#defineSys_y25 /*显示方块界面的左上角y座标*/#defineHorizontal_boxs10 /*水平的方向以方块为单位的长度*/
#defineVertical_boxs15 /*垂直的方向以方块为单位的长度,也就说长是15个方块*/#defineBegin_boxs_xHorizontal_boxs/2 /*产生第一个方块时出现的起始位置*/
#defineFgColor3 /*前景颜色,如文字.2-green*/#defineBgColor0 /*背景颜色.0-blac*/
#defineLeftWin_xSys_x+Horizontal_boxs*BSIZE+46 /*右边状态栏的x座标*/#definefalse0
#definetrue1
/*移动的方向*/#defineMoveLeft1
#defineMoveRight2
#defineMoveDown3
#defineMoveRoll4
/*以后坐标的每个方块可以看作是像素点是BSIZE*BSIZE的正方形*/
/*定义全局变量*/
intcurrent_box_numb; /*保存当前方块编号*/
intCurbox_x=Sys_x+Begin_boxs_x*BSIZE,Curbox_y=Sys_y;/*x,y是保存方块的当前坐标的*/intflag_newbox=false; /*是否要产生新方块的标记0*/
intspeed=0; /*下落速度*/
intscore=0; /*总分*/
intspeed_step=30; /*每等级所需要分数*/
voidinterrupt(*oldtimer)(void);/*指向原来时钟中断处理过程入口的中断处理函数指针*/
structBOARD /*游戏底板结构,表示每个点所具有的属性*/
{
intvar; /*当前状态只有0和1,1表示此点已被占用*/
intcolor; /*颜色,游戏底板的每个点可以拥有不同的颜色.增强美观*/
}Table_board[Vertical_boxs][Horizontal_boxs];
/*方块结构*/structSHAPE
{
charbox[2]; /*一个字节等于8位,每4位来表示一个方块的一行
如:box[0]=0x88,box[1]=0xc0表示的是:1000
1000
1100
0000*/
intcolor; /*每个方块的颜色*/
intnext; /*下个方块的编号*/
};
/*初始化方块内容.即定义MAX_BOX个SHAPE类型的结构数组,并初始化*/structSHAPEshapes[MAX_BOX]=
{
/*
*
*
*
口
口口口
口口口
口
口口
口口
口
口口口
*/
{0x88,
0xc0,
CYAN,
1},
{0xe8,
0x0,
CYAN,
2},
{0xc4,
0x40,
CYAN,
3},
{0x2e,
0x0,
CYAN,
0},
/*
*
口 口口口口口
*
口口 口 口
*
*/
口口口口口口
{0x44, 0xc0, MAGENTA,
5},
{0x8e, 0x0, MAGENTA,
6},
{0xc8, 0x80, MAGENTA,
7},
{0xe2, 0x0, MAGENTA, 4},
/*
口
口口 口口
*
*/
口
{0x8c,
0x40,
口口
YELLOW,9},
{0x6c,
0x0,
YELLOW,8},
/*
*
口
口口
*
*
*/
口口口
口口
{0x4c,
{0xc6,
0x80,
0x0,
BROWN,BROWN,
11},
10},
/*
*
口
口
口
*
*
文档评论(0)