俄罗斯方块源程序精要.docVIP

  • 0
  • 0
  • 约1.35万字
  • 约 16页
  • 2017-03-25 发布于湖北
  • 举报
俄罗斯方块源程序精要

/* *俄罗斯方块源程序 */ #include stdio.h #include stdlib.h #include dos.h #include graphics.h /*图形函数库*/ /*定义按键码*/ #define VK_LEFT 0x4b00 #define VK_RIGHT 0x4d00 #define VK_DOWN 0x5000 #define VK_UP 0x4800 #define VK_ESC 0x011b #define TIMER 0x1c /*设置中断号*/ /*定义常量*/ #define MAX_BOX 19 /*总共有19种各形态的方块*/ #define BSIZE 20 /*方块的边长是20个象素*/ #define Sys_x 160 /*显示方块界面的左上角x座标*/ #define Sys_y 25 /*显示方块界面的左上角y座标*/ #define Horizontal_boxs 10 /*水平的方向以方块为单位的长度*/ #define Vertical_boxs 15 /*垂直的方向以方块为单位的长度,也就说长是15个方块*/ #define Begin_boxs_x Horizontal_boxs/2 /*产生第一个方块时出现的起始位置*/ #define FgColor 3 /*前景颜色,如文字.2-green*/ #define BgColor 0 /*背景颜色.0-blac*/ #define LeftWin_x Sys_x+Horizontal_boxs*BSIZE+46 /*右边状态栏的x座标*/ #define false 0 #define true 1 /*移动的方向*/ #define MoveLeft 1 #define MoveRight 2 #define MoveDown 3 #define MoveRoll 4 /*以后坐标的每个方块可以看作是像素点是BSIZE*BSIZE的正方形*/ /*定义全局变量*/ int current_box_numb; /*保存当前方块编号*/ int Curbox_x=Sys_x+Begin_boxs_x*BSIZE,Curbox_y=Sys_y;/*x,y是保存方块的当前坐标的*/ int flag_newbox=false; /*是否要产生新方块的标记0*/ int speed=0; /*下落速度*/ int score=0; /*总分*/ int speed_step=30; /*每等级所需要分数*/ void interrupt (*oldtimer)(void);/* 指向原来时钟中断处理过程入口的中断处理函数指针 */ struct BOARD /*游戏底板结构,表示每个点所具有的属性*/ { int var; /*当前状态 只有0和1,1表示此点已被占用*/ int color; /*颜色,游戏底板的每个点可以拥有不同的颜色.增强美观*/ }Table_board[Vertical_boxs][Horizontal_boxs]; /*方块结构*/ struct SHAPE { char box[2]; /*一个字节等于8位,每4位来表示一个方块的一行 如:box[0]=0x88,box[1]=0xc0表示的是: 1000 1000 1100 0000*/ int color; /*每个方块的颜色*/ int next; /*下个方块的编号*/ }; /*初始化方块内容.即定义MAX_BOX个SHAPE类型的结构数组,并初始化*/ struct SHAPE shapes[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, 0x80, BROWN, 11}, {0xc6, 0x0, BROWN, 10}, /* * 口 口 口 * 口口口 口口 口口口 口口 * 口 口 口 */ {0x4e,

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档