1 / 19
文档名称:

俄罗斯方块.doc

格式:doc   页数:19页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

俄罗斯方块.doc

上传人:df158687 2016/5/31 文件大小:0 KB

下载得到文件列表

俄罗斯方块.doc

相关文档

文档介绍

文档介绍:俄罗斯方块#include <> // 为了使用 API 函数。应用程序编程接口#include <> // 为了使用定时器。#include <> // 为了使用随机数。#include <> const int Width = 12; // 游戏界面的宽度, 字符数。 const int Height = 22;// 游戏界面的高度 const int startX = 20;// 开始绘制界面的点 const int startY = 0; bool isChecking = false; // 删行时按键无效。 int g_Board[Height][Width] = {0};// 游戏界面的数组, 数组的初始化。 void DeleteRow(int row)// 删除数组中某行 row >=0 && row < Height { for (int i= row; i> 0; --i) //row 为满行的行数。{ for (int j= 0;j< Width; ++j) { g_Board[i][j] = g_Board[i-1][j]; // 把上一行放到下一行}}} int GetRandomShape( int seed )// 随机产生方块的 19 种形变{ return time(NULL) / seed % 19;// 用系统时间作为随机数的种子,获得不同的随机数。这个函数如果是 time ( null )返回的则是当前时间(确切的来说这么说是不正确的,其实 time 返回的是从格林威治时间 1970 年1月1日0点0分0 秒到现在的秒数,你这个程序中可以这么理解} bool IsOut(int x, int y)// 判断是否越界{ return x <= startX ||y <= startY ||x> startX + 2*Width ||y> startY + Height ;// 一个字符占两个字节,所以要* h 是字符数} void HideCursor(void) // 隐藏光标,头文件<> { CONSOLE_CURSOR_INFO cursor_info = {1, false}; // 后边的 0 代表光标不可见,CONSOLE_CURSOR_INFO 是一个结构体。 SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info); // 系统 API 函数: 协调应用程序的执行、内存分配、系统资源管理} void SetCursorPosition(int x, int y)// 定位光标{ COORD coord; = x; = y; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);// 是个宏, 代表标准输出,可以看作显示器} struct Blocks { char blockShape[2];//{(char)0x88, (char)0xc0, 1} 一共三种。 int nextShapeID; // 旋转后的图形编号, 也就数组中的下标,下一形变编号。}; Blocks blocks[19] ={ /* 1000 1110 1100 0010 1000 1000 0100 1110 1100 0000 0100 0000 0000 0000 0000 0000 */ {(char)0x88, (char)0xc0, 1}, {(char)0xe8, (char)0x00, 2}, {(char)0xc4, (char)0x40, }, {(char)0x2e, (char)0x00, 0}, /* 0100 1000 1100 1110 0100 1110 1000 0010 1100 0000 1000 0000 0000 0000 0000 0000 */ {(char)0x44, (char)0xc0, 5}, {(char)0x8e, (char)0x00, 6}, {(char)0xc8, (char)0x80, 7}, {(char)0xe2, (char)0x00, 4}, /* 1000 0110 1100 1100 0100 0000 0000 0000 */ {(char)0x8c, (char)0x40, 9}, {(char)0x6c, (char)0x00, 8}, /* 0100 1100 1100 0110 1000 0000 0000 0000 */ {(char)0