资源预览内容
第1页 / 共21页
第2页 / 共21页
第3页 / 共21页
第4页 / 共21页
第5页 / 共21页
第6页 / 共21页
第7页 / 共21页
第8页 / 共21页
第9页 / 共21页
第10页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
高级程序设计实践(C+ )课程设计高级程序设计实践( C+)课程设计姓名:学号:班级:设计内容:扫雷游戏设计时间:2013年 7 月XX大学1高级程序设计实践(C+ )课程设计XX大学2高级程序设计实践(C+ )课程设计目录 3 3 4 4 5 5 5XX大学3高级程序设计实践(C+ )课程设计一、系统描述设计一个功能与Windows中的挖雷游戏相同的小游戏。 游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子,同时避免踩雷。二、功能模块结构扫雷进入游开始游打开非标记雷游戏结退出戏戏雷区区束开始进入游戏任选某一位置,查是看是否为雷是否是否有未“扫”过的位置否胜 利失败XX 大学4结束高级程序设计实践(C+ )课程设计三、主要模块的算法说明主要包括两个类。控制台显示类:在基类中主要是读取字符位置。并将光标移动到该位置。并输出。游戏类: 主要功能还是在该类中完成。首先先定义其参数。然后再初始化游戏池。显示游戏窗口。判断游戏是否继续进行。显示数字。定义键盘的作用。等等。四、运行结果XX大学5高级程序设计实践(C+ )课程设计五、课程设计总结设计完贪食蛇之后再设计扫雷游戏,设计难度减少不少。但是还是面临了许多问题。关于雷的随机出现和周围数字的产生。还有就是循环体的设计同样困扰了自己。通过向老师和同学请教,终于将问题一个个解决。在此次课程设计中进一步巩固了用 C+语言编写程序。也同样体会到了在编程过程中要细致耐心。同时锻炼了自己独立思考的能力。自己设计的扫雷游戏仍然有许多的不足之处。例如没有划分其难度等级等等。应该向其他同学多加学习。早日掌握好这门语言。六、参考文献 C+ 程序设计(第二版) 谭浩强编著清华大学出版社. VisualC+ 程序设计学习笔记刘春辉编著北京电子工业出版社七、附录/ 头文件XX大学6高级程序设计实践(C+ )课程设计#include #include #include #include #include /定义#define KEY_UP0xE048/ 宏定义 UP 为 16 进制的 0xE048#define KEY_DOWN0xE050#define KEY_LEFT0xE04B#define KEY_RIGHT 0xE04D#define KEY_ESC0x001B#define KEY_11#define KEY_22#define GAME_MAX_WIDTH100#define GAME_MAX_HEIGHT100/ 字符串资源#define STR_GAMETITLE 键 1:打开;键 2:标记 #define STR_GAMEWIN恭喜你,胜利了! #define STR_GAMEOVER( o ),很遗憾! n#define STR_GAMEEND按 ESC 键将退出游戏 n/ 基类XX大学7高级程序设计实践(C+ )课程设计class CConsoleWndpublic:static int TextOut(const char*);static int GotoXY(int, int);static int CharOut(int, int, const int);static int TextOut(int, int, const char*);static int GetKey();int CConsoleWnd:GetKey()/等待标准输入和返回键码int nkey=getch(),nk=0;if(nkey=128|nkey=0)nk=getch();/从控制台读取一个字符, 但不显示在屏幕上。return nk0?nkey*256+nk:nkey;int CConsoleWnd:GotoXY(int x, int y)/移动光标到( x,y)COORD cd; / 表示一个字符在控制台屏幕上的坐标XX大学8高级程序设计实践(C+ )课程设计cd.X = x;cd.Y = y;returnSetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),cd);/API中定位光标位置的函数int CConsoleWnd:TextOut(const char* pstr)/在当前位置输出字符串for(;*pstr;+pstr)putchar(*pstr);/该函数将制定的表达式的值所对应的字符输出到标准输出终端上。return 0;int CConsoleWnd:CharOut(int x, int y, const int pstr)/在( x,y)处输出一个字符GotoXY(x, y);return putchar(pstr);/ 输出一个字符串( x,y)XX大学9高级程序设计实践(C+ )课程设计int CConsoleWnd:TextOut(int x, int y, const char* pstr)GotoXY(x, y);return TextOut(pstr);/应用类class CSLGame:public CConsoleWndprivate:int curX,curY;int poolWidth,poolHeight;int bm_gamepoolGAME_MAX_HEIGHT+2GAME_MAX_WIDTH+2;public:CSLGame():curX(0),curY(0)poolWidth=poolHeight=0;int InitPool(int, int, int);int MoveCursor()return CConsoleWnd:GotoXY(curX, curY);int DrawPool(int);int WaitMessage();int GetShowNum(int, int);int TryOpen(int, int);private:XX 大学10高级程序设计实践(C+ )课程设计int DFSShowNum(int, int);private:const static int GMARK_BOOM;const static int GMARK_EMPTY;const static int GMARK_MARK;/定义静态参数(私有,不可被其他函数调用);const int CSLGame:GMARK_BOOM =0x10;const int CSLGame:GMARK_EMPTY=0x100;const int CSLGame:GMARK_MARK =0x200;
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号