1 / 14
文档名称:

毕业论文-基于visual c++的扫雷游戏设计311.doc

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

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

分享

预览

毕业论文-基于visual c++的扫雷游戏设计311.doc

上传人:marry201208 2018/6/23 文件大小:265 KB

下载得到文件列表

毕业论文-基于visual c++的扫雷游戏设计311.doc

相关文档

文档介绍

文档介绍:青岛理工大学琴岛学院
设计报告
课题名称:扫雷游戏设计
学院:青岛理工大学琴岛学院
专业班级:计算机科学与技术102班
学号:20100301049
学生:徐为
指导教师:张秀国、宋传磊
青岛理工大学琴岛学院教务处
2011年 7月8 日
一、调研材料
扫雷游戏是Windows操作系统自带的一个小游戏,过去的几年里Windows操作系统历经数次换代,变得越来越庞大、复杂,但扫雷游戏在任何版本的Windows操作系统里却依然保持原貌,而且几乎每个电脑使用者都接触过它,并且深爱着这款小游戏。
扫雷游戏是比较经典的一款小游戏,实现它的方法很多,可以用很多算法和语言实现,如C,C++,VB,JAVA等。以Visual C++ 开发环境,设计并开发一款扫雷游戏,其功能类似于Windows操作系统自带的扫雷游戏。
Visual C++是一个功能强大的可视化开发工具。自1993年Microsoft公司推出Visual C++,随着其新版本的不断问世,VisualC++已成为专业程序员进行软件开发的首选工具。它不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化即成开发环境。
二、概要设计
基本功能
扫雷游戏

游戏开始
游戏选关
游戏计雷
游戏计时

图 1 程序基本功能



类名
成员函数
功能

CMy2_1View

leizero( )
显示没有雷的区域
Onchuji( )
给变量m_RowCount、m_ColCount、leinum赋值并初始化游戏。

Onzhongji( )
给变量m_RowCount、m_ColCount、leinum赋值并初始化游戏。
Ongaoji( )
给变量m_RowCount、m_ColCount、leinum赋值并初始化游戏。
OnLButtonDown( )
如果在按钮上面,则显示按钮按下位图;如果在扫雷区,先把按钮位图改为张口位图,再判断按下的是否是雷,是就结束,重画,以显示所有的雷;否则,重画相应格子以显示数字。
OnRButtonDown( )
如果是雷,按右键时,显示旗子,并减少一个剩下雷数;如果我们认为那旗子的格子不是雷,按右键,显示问号,并在剩下雷数加上1。
OnLButtonUp( )

松开左键时,显示按钮没有按下的位图;再判断,如果结束,就要显示失败的位图;如果是在按钮上松开按钮,即表示我们已经按下了重新开始的按钮,必须调用重新开始函数OnStart()。
OnStart()
初始化游戏
OnTimer( )
记录游戏所用时间
表 1 类及其函数功能
详细设计

前十二幅是在雷区的,后四幅是按钮。为了便于加载,必须各自保证其连续性。另外,为什么不添加一个按钮而用位图呢?是因为即使我们添加了按钮也要添加四幅位图!
位图的ID号:
按扭位图:30*30 IDB_ANNIU1、IDB_ANNIU 2、IDB_ANNIU3、 IDB_ANNIU4
雷区位图:14*14 ID号按下图依次为:IDB_BITMAP14。。。。。。IDB_BITMAP25
调整窗口大小
在类CMainFrame中的PreCreateWindow( )添加代码:
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
·······
=|WS_EX_TOPMOST; //
=WS_SYSMENU|WS_OVERLAPPED|WS_MINIMIZEBOX;//;
=440;
=400;
return TRUE;
}
画游戏界面
为了用户框重画的需要,当我们的游戏玩了一半后最小化,或是把部分窗口移出屏幕,或是执行了新的应用程序覆盖了原来的程序时,必须重画。我们调用重画函数,它都要重新执行OnDraw(CDC* pDC)函数,那么,此时它就必须把已经显示出来的位图也显示出来。而开始时雷区位图是不可见的,并不影响界面的初始化。
void CMy2_1View::OnDraw(CDC* pDC)
{
·······
CBrush mybrush1;
(RGB(192,192,192));
CRect myrect1(0,0,1200,800);
pDC->FillRect(myrect1,&mybrush1);
CBrush mybrush;