预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共21页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

高级程序设计实践(C++)课程设计XX大学高级程序设计实践(C++)课程设计姓名:学号:班级:设计内容:扫雷游戏设计时间:2013年7月目录一、系统描述………………………………………3二、功能模块结构…………………………………3三、主要模块的算法说明…………………………4四、运行结果………………………………………4五、课程设计总结…………………………………5六、参考文献………………………………………5七、附录……………………………………………5一、系统描述设计一个功能与Windows中的挖雷游戏相同的小游戏。游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子,同时避免踩雷。二、功能模块结构扫雷进入游戏开始游戏打开非雷区标记雷区游戏结束退出开始进入游戏任选某一位置,查看是否为雷是是否是否有未“扫”过的位置否结束失败胜利三、主要模块的算法说明主要包括两个类。①控制台显示类:在基类中主要是读取字符位置。并将光标移动到该位置。并输出。②游戏类:主要功能还是在该类中完成。首先先定义其参数。然后再初始化游戏池。显示游戏窗口。判断游戏是否继续进行。显示数字。定义键盘的作用。等等。四、运行结果五、课程设计总结设计完贪食蛇之后再设计扫雷游戏,设计难度减少不少。但是还是面临了许多问题。关于雷的随机出现和周围数字的产生。还有就是循环体的设计同样困扰了自己。通过向老师和同学请教,终于将问题一个个解决。在此次课程设计中进一步巩固了用C++语言编写程序。也同样体会到了在编程过程中要细致耐心。同时锻炼了自己独立思考的能力。自己设计的扫雷游戏仍然有许多的不足之处。例如没有划分其难度等级等等。应该向其他同学多加学习。早日掌握好这门语言。六、参考文献①《C++程序设计》(第二版)谭浩强编著清华大学出版社.②《VisualC++程序设计学习笔记》刘春辉编著北京电子工业出版社七、附录//头文件#include<iostream>#include<cstdlib>#include<ctime>#include<windows.h>#include<conio.h>//定义#defineKEY_UP0xE048//宏定义UP为16进制的0xE048#defineKEY_DOWN0xE050#defineKEY_LEFT0xE04B#defineKEY_RIGHT0xE04D#defineKEY_ESC0x001B#defineKEY_1'1'#defineKEY_2'2'#defineGAME_MAX_WIDTH100#defineGAME_MAX_HEIGHT100//字符串资源#defineSTR_GAMETITLE"键1:打开;键2:标记"#defineSTR_GAMEWIN"恭喜你,胜利了!"#defineSTR_GAMEOVER"(⊙o⊙),很遗憾!\n"#defineSTR_GAMEEND"按ESC键将退出游戏\n"//基类classCConsoleWnd{public:staticintTextOut(constchar*);staticintGotoXY(int,int);staticintCharOut(int,int,constint);staticintTextOut(int,int,constchar*);staticintGetKey();};intCConsoleWnd::GetKey()//等待标准输入和返回键码{intnkey=getch(),nk=0;if(nkey>=128||nkey==0)nk=getch();//从控制台读取一个字符,但不显示在屏幕上。returnnk>0?nkey*256+nk:nkey;}intCConsoleWnd::GotoXY(intx,inty)//移动光标到(x,y){COORDcd;//表示一个字符在控制台屏幕上的坐标cd.X=x;cd.Y=y;returnSetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),cd);//API中定位光标位置的函数}intCConsoleWnd::TextOut(constchar*pstr)//在当前位置输出字符串{for(;*pstr;++pstr)putchar(*pstr);//该函数将制定的表达式的值所对应的字符输出到标准输出终端上。return0;}i