资源描述:
《毕业论文-基于visual c++的扫雷游戏设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、青岛理工大学琴岛学院设计报告课题名称:扫雷游戏设计学院:青岛理工大学琴岛学院专业班级:计算机科学与技术102班学号:学生:徐为指导教师:张秀国、宋传磊青岛理工大学琴岛学院教务处2011年7月8日一、调研材料扫雷游戏是Windows操作系统自带的一个小游戏,过去的几年里Windows操作系统历经数次换代,变得越来越庞大、复杂,但扫雷游戏在任何版本的Windows操作系统里却依然保持原貌,而且几乎每个电脑使用者都接触过它,并且深爱着这款小游戏。扫雷游戏是比较经典的一款小游戏,实现它的方法很多,可以用很多
2、算法和语言实现,如C,C++,VB,JAVA等。以VisualC++开发环境,设计并开发一款扫雷游戏,其功能类似于Windows操作系统自带的扫雷游戏。VisualC++是一个功能强大的可视化开发工具。自1993年Microsoft公司推出VisualC++1.0后,随着其新版本的不断问世,VisualC++已成为专业程序员进行软件开发的首选工具。它不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化即成开发环境。二、概要设计1.基本功能扫雷游戏游戏开始游戏选关游戏计雷游戏计时图1程
3、序基本功能类名成员函数功能CMy2_1Viewleizero()显示没有雷的区域Onchuji()给变量m_RowCount、m_ColCount、leinum赋值并初始化游戏。Onzhongji()给变量m_RowCount、m_ColCount、leinum赋值并初始化游戏。Ongaoji()给变量m_RowCount、m_ColCount、leinum赋值并初始化游戏。OnLButtonDown()如果在按钮上面,则显示按钮按下位图;如果在扫雷区,先把按钮位图改为张口位图,再判断按下的是否是雷
4、,是就结束,重画,以显示所有的雷;否则,重画相应格子以显示数字。OnRButtonDown()如果是雷,按右键时,显示旗子,并减少一个剩下雷数;如果我们认为那旗子的格子不是雷,按右键,显示问号,并在剩下雷数加上1。OnLButtonUp()松开左键时,显示按钮没有按下的位图;再判断,如果结束,就要显示失败的位图;如果是在按钮上松开按钮,即表示我们已经按下了重新开始的按钮,必须调用重新开始函数OnStart()。OnStart()初始化游戏OnTimer()记录游戏所用时间表1类及其函数功能三、详细设
5、计1.添加位图前十二幅是在雷区的,后四幅是按钮。为了便于加载,必须各自保证其连续性。另外,为什么不添加一个按钮而用位图呢?是因为即使我们添加了按钮也要添加四幅位图!位图的ID号:按扭位图:30*30IDB_ANNIU1、IDB_ANNIU2、IDB_ANNIU3、IDB_ANNIU4雷区位图:14*14ID号按下图依次为:IDB_BITMAP14。。。。。。IDB_BITMAP252.调整窗口大小在类CMainFrame中的PreCreateWindow()添加代码:BOOLCMainFrame::
6、PreCreateWindow(CREATESTRUCT&cs){·······cs.dwExStyle=cs.dwExStyle
7、WS_EX_TOPMOST;//cs.style=WS_SYSMENU
8、WS_OVERLAPPED
9、WS_MINIMIZEBOX;//;cs.cx=440;cs.cy=400;returnTRUE;}2.画游戏界面为了用户框重画的需要,当我们的游戏玩了一半后最小化,或是把部分窗口移出屏幕,或是执行了新的应用程序覆盖了原来的程序时,必须重画。我们调用重画函数,它都要重新执
10、行OnDraw(CDC*pDC)函数,那么,此时它就必须把已经显示出来的位图也显示出来。而开始时雷区位图是不可见的,并不影响界面的初始化。voidCMy2_1View::OnDraw(CDC*pDC){·······CBrushmybrush1;mybrush1.CreateSolidBrush(RGB(192,192,192));CRectmyrect1(0,0,1200,800);pDC->FillRect(myrect1,&mybrush1);CBrushmybrush;mybrush.Cre
11、ateSolidBrush(RGB(0,0,0));CRectmyrect(20,10,70,40);pDC->FillRect(myrect,&mybrush);CRectmyrect2(325,10,375,40);pDC->FillRect(myrect2,&mybrush);CPenmypen;CPen*myoldPen;mypen.CreatePen(PS_SOLID,2,RGB(255,255,255));myoldPen=pDC->SelectObjec