首页 VC++拼图游戏设计

VC++拼图游戏设计

举报
开通vip

VC++拼图游戏设计2011届本科毕业生论文 题目: VC++拼图游戏设计 Title: Design of Vc++ Puzzle Game 名 姓 学 号 所在学院 专 业 指导教师 完成日期 声 明 本人郑重声明: 所呈交的毕业设计(论文)是本人在指导教师指导下进行的研究工作及取得的研究成果。其中除加以标注和致谢的地方,以及法律规定允许的之外,不包含其他人已经发表或撰写完成并以某种方式公开过的研究成果,也不包含为获得其他教育机构的学位或证书而作的材料。其他同志对本研究所做的任何贡献均已在文中作了明确的说明并表...

VC++拼图游戏设计
2011届本科毕业生论文 题目: VC++拼图游戏设计 Title: Design of Vc++ Puzzle Game 名 姓 学 号 所在学院 专 业 指导教师 完成日期 声 明 本人郑重声明: 所呈交的毕业设计(论文)是本人在指导教师指导下进行的研究工作及取得的研究成果。其中除加以标注和致谢的地方,以及法律规定允许的之外,不包含其他人已经发表或撰写完成并以某种方式公开过的研究成果,也不包含为获得其他教育机构的学位或证书而作的材料。其他同志对本研究所做的任何贡献均已在文中作了明确的说明并表示谢意。 本毕业设计(论文)成果是本人在江西师范大学读书期间在指导教师指导下取得的,成果归江西师范大学所有。 特此声明。 声明人(毕业设计(论文)作者)学号: 声明人(毕业设计(论文)作者)签名: 签名日期: 年 月 日 摘 要 本文介绍了一个基于VC的趣味拼图游戏开发的全过程,MFC规范的出现使得我们开发VC游戏成为可能,今天我们要实现的是一个简单的拼图游戏。这个拼图游戏是一个3*3的拼图,由9个随机分割打乱的小图片构成,其中置一格为空。通过消息映射控制移动空框边的小图片来实现拼图,从游戏前得准备到主要类和设备接口的实现,最后运行、调试和打包。 关键词:VC,拼图,MFC,游戏,随机分割打乱。 I Abstract Introduces a jigsaw puzzle based on VC interest development entire process, the emergence of ordinary MFC standard allows us to develop VC games become possible, today we are going to realize is that a simple puzzle. This puzzle is a 3 * 3 of the jigsaw puzzle, disrupted by nine random division of the small picture composition, buy a case is empty. By moving the empty box edge little pictures from game to achieve puzzles, before the main class and to the realization of the device interface, finally running, debugging and packaged. Key words: Visual c + +, Puzzle, Mfc, Game, Sorting frame. II 目 录 摘 要 ............................................................................................................................................ I Abstract........................................................................................................................................... II 1 引言 .............................................................................................................................................. 1 1.1 拼图游戏介绍................................................................................................................... 1 1.2 开发背景........................................................................................................................... 1 1.3 开发环境及运行环境 ....................................................................................................... 1 1.3.1 开发环境 ............................................................................................................... 1 1.3.2 运行环境 ............................................................................................................... 1 2 设计要求 ...................................................................................................................................... 2 2.1 基本要求........................................................................................................................... 2 2.2 创新要求........................................................................................................................... 2 3 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 设计 ...................................................................................................................................... 2 3.1 设计原理........................................................................................................................... 2 3.2 设计流程图....................................................................................................................... 4 4 系统开发工具和技术 .................................................................................................................. 4 4.1 Visual C++的工作环境 ................................................................................................... 4 4.2 位图显示........................................................................................................................... 5 4.3 消息映射过程................................................................................................................... 6 5 九宫格拼图游戏设计 .................................................................................................................. 7 5.1 九宫格界面设计............................................................................................................... 7 5.2 MFC中图像的显示 ............................................................................................................ 9 5.3 图片处理与游戏规则 ..................................................................................................... 12 5.4 对话框菜单编辑............................................................................................................. 17 5.4.1 菜单编辑 ............................................................................................................. 17 5.4.2菜单命令的消息映射 .......................................................................................... 17 5.5 游戏结束标志................................................................................................................. 19 6 编译运行并测试 ........................................................................................................................ 21 7总结 ............................................................................................................................................. 22 参考文献 ........................................................................................................................................ 23 致谢 ................................................................................................................................................ 24 III 1 引言 1.1 拼图游戏介绍 拼图游戏是广受欢迎的一种智力游戏,它的变化多端,难度不一,让人百玩不厌。 个性化的拼图,拼凑的不仅仅是一张照片,而是一个故事,一段回忆,一段温情。每一片的单片都有它自己的位置,就像每段回忆都有它的故事,你要将它放在专属的地方,放对了就慢慢丰富起来,放错了就无法完整。 你可以把你记忆中最深的片段,可以是你挚爱的照片,可以是你最难忘的一瞬留念,做成拼图,在思念的季节里一一拼起,把片片散落的记忆重新组合,用指尖温习甜蜜,把心湖里最美丽的涟漪荡漾开来。 拼图游戏不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。它既有简单易学的特性,为人民群众所喜闻乐见。 1.2 开发背景 当前网络上流传的拼图游戏功能并不尽善尽美,其中最主要的问题就是很多软件在图片打乱上面处理的比较模糊,也有采用固定的打乱方法;而且有时出现有一对板块是对调的无法完成游戏,所以我决定开发一个随机打乱图片可以完成的拼图游戏系统。 1.3 开发环境及运行环境 1.3.1 开发环境 开发这款拼图游戏需要的电脑配置如下: 1(Intel? Pentium? 4 2.0GHz,512M内存,80G硬盘 2(Microsoft? Windows? 2000 Professional 3(Microsoft? Visual C++ 6.0 4(Microsoft? Developer Network for Visual Studio.NET 2003 5(Visual Assist X 10.1.1301.0 1.3.2 运行环境 运行这款拼图游戏所需要的电脑配置如下: 1(Intel? Pentium? 2及以上处理器,32M以上内存,4G以上硬盘 2(Microsoft? Windows? 9X/NT操作系统 3. 800*600或以上的屏幕分辨率 1 2 设计要求 2.1 基本要求 打开任意一个图片,随机打乱图片,然后可以利用鼠标拖动空缺模块附近的模块与空缺模块进行交换,直到拼合出原来图像,具体要求如下: 1. 可以打开并显示Jpg,bmp,gif等任意格式图片 2. 游戏开始之后,可以随机打乱图片 3 用户可以拖动模块进行交换,直到拼合出原图像 4 系统能够自动检查到用户拼合出原图像并提示用户 2.2 创新要求 在基本要求达到后,进行创新设计,创新方向提示如下: 1(实现每次打乱图片都可以完成 2(可以提供原图像以供参考,并且加入边框 3(添加用户拼合出原图像的步数 3 方案设计 3.1 设计原理 这款拼图游戏是以对话框的形式显现出来,详细设计步骤如下: 1. 通过拼图边框的绘制及控件的添加来实现对话框的布局设置 2. 将拼图边框划分成九个小格,每个小格分别用0~8来标识,通过转换设 备环境内存的图片数据划分成9份分别显示到这九个小格子里,其中标 识为8的小格不显示图片 3. 构建函数实现小图片间的随机打乱,打乱过程确保可以完成拼图 4. 通过消息映射来实现鼠标左键来控制格子的移动 5. 通过图片的标识数字与0~8比较,如果都一样则完成拼图,否则继续拼 图 2 设计效果如图所示: 7 5 6 2 8 3 4 1 0 图a 开始随机打乱标示数 图b开始界面 1 2 3 4 5 6 7 8 0 图c 完成标示数 图d完成界面 3 3.2 设计流程图 开始 绘制边框 加载图片 随机打乱图片 拼图 移动步数加一 N 判断是否与 原图一样 Y 完成拼图 结束 图1设计流程图 4 系统开发工具和技术 4.1 Visual C++的工作环境 如果安装了Visual C++ 6.0,用鼠标单击“开始”,在“程序”组中选择“Microsoft Visual C++ 6.0”工作组,在“Microsoft Visual 6.0”项上双击,即进入Visual C++6.0的集成环境。在这一集成环境中,最重要的是 工程 路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理 (Project)的概念。“工程”是相关源文件的集合。包括源文件、头文件及资源定义文件。Visual平台是自动化很高的编译系统,它能自动处理源文件间的关 4 系,利用其内在推理规则来激活编译器、连接器和资源编译器,最后生成可执行 【1】文件。 图2 Visual C++集成环境界面 4.2 位图显示 CBitmap类封装了Windows的GDI位图操作所需的大部分函数。其中,LoadBitmap是位图的初始化函数,其函数原型如下: BOOL LoadBitmap(LPCTSTR lpszResourceName); BOOL LoadBitmap(UINT nIDResource); 由于位图不能直接显示在实际设备中,因此对于GDI位图的显示则必须遵循 【2】 下列步骤: 1. 调用CBitmap类的CreateBitmap、CreateCompatibleBitmap以及CreateBitmapIndirect函数创建一个适当的位图对象。 2. 调用CDC::CreateCompatibleDC函数创建一个内存设备环境,以便位图在内存中保存下来,并与指定设备(窗口设备)环境相兼容。 3. 调用CDC::SelectObject函数将位图对象选入内存设备环境中。 4. 调用CDC::BitBlt或CDC::StretchBlt函数将位图复制到实际设备环境中。 5 4.3 消息映射过程 例如,若向CSCPortTestView中添加OnInitalUpdate的消息映射,则可按 【3】 下列步骤进行: 1. 按Ctrl+W快捷键打开“MFC ClassWizard”对话框。 2. 在Class name 组合框中,将类名选定为CSCPortTestView。此时,Object IDs和Messages列表内容会相应地改变。 3. 在Object IDs列表框中选定CSCPortTestView,而在Messages列表中选 定OnInitalUpdate消息。 双击Messages列表中的OnInitalUpdate消息或单击“Add Function”4. 按钮,都会在CSCPortTestView类中添加该消息的映射函数 OnInitalUpdate,同时在Member functions列表中显示这一消息映射函数 和被映射的消息,如图所示: 图3消息映射添加 5.单击“Edit Code”按钮后,“ClassWizard”对话框退出,并转向文档窗口,定位到OnInitalUpdate函数源代码处。 6.添加代码。 7.这样就完成了一个消息映射过程。 6 5 九宫格拼图游戏设计 5.1 九宫格界面设计 1. 对话框的创建 对话框编辑器最初打开时,控件工具栏是随之出现的,利用此工具栏中的各个按钮可以顺利完成控件的添加。 【2】在对话框中添加一个控件的方法有下列几种: 1.1 在控件工具栏中单击某控件,此时的鼠标箭头在对话框内变成“十”字形状;在对话框指定位置单击鼠标左键,则此控件被添加到对话框的相应位置,再拖动刚添加控件的选择框可改变其大小和位置。 1.2 在控件工具栏中单击某按钮,此时的鼠标箭头对话框内变成“十”字形状;在指定位置处单击鼠标左键不放,拖动鼠标至相应位置,释放鼠标键。 1.3 用鼠标左键单击控件工具栏中的某个控件,并按住鼠标左键不放;在拖动鼠标到对话框的指定位置的过程中,用户会看到一个虚线框,下面带有改控件的标记;释放鼠标左键,新添加的控件立即出现在对话框中。 2. 拼图边框的创建 【5】 对话框创建之后,设 计划 项目进度计划表范例计划下载计划下载计划下载课程教学计划下载 分为九个小格的边框,代码如下: Void CMyDlg::Show(CDC * dc){ CDC tdc; CBitmap bmp, *obmp; 图e 控件 bmp.LoadBitmap(IDB_BG);//调入位图资源 tdc.CreateCompatibleDC(dc);//定义并创建一个内存设备环境 obmp = tdc.SelectObject(&bmp);//将位图调入内存设备环境中 CDC bmpdc, picdc; bmpdc.CreateCompatibleDC(dc); picdc.CreateCompatibleDC(dc); CBitmap bbmp, * obbmp; CBitmap pbmp, * opbmp; bbmp.CreateCompatibleBitmap(dc, 360, 360); pbmp.CreateCompatibleBitmap(dc, (360/size), (360/size)); obbmp = bmpdc.SelectObject(&bbmp); opbmp = picdc.SelectObject(&pbmp); 7 pic.Render(&bmpdc, CRect(0, 0, 360, 360));//读取IDB_BG图像文件分为九格 int i; if(border){//画边框 CPen pen, * open; pen.CreatePen(PS_SOLID, 1, RGB(96, 96, 96)); open = bmpdc.SelectObject(&pen); for(i = 0; i < size; i++){ bmpdc.MoveTo(0, (360/size)*(i+1)-1); bmpdc.LineTo(359, (360/size)*(i+1)-1); bmpdc.MoveTo((360/size)*(i+1)-1, 0); bmpdc.LineTo((360/size)*(i+1)-1, 359); } bmpdc.SelectObject(open); pen.DeleteObject(); pen.CreatePen(PS_SOLID, 1, RGB(240, 240, 240)); open = bmpdc.SelectObject(&pen); for(i = 0; i < size; i++){ bmpdc.MoveTo(0, (360/size)*i); bmpdc.LineTo(359, (360/size)*i); bmpdc.MoveTo((360/size)*i, 0); bmpdc.LineTo((360/size)*i, 359); } bmpdc.SelectObject(open); } obmp = tdc.SelectObject(&bmp); for(i = 0; i < size; i++){ for(int j = 0; j < size; j++){ int n = spell.GetPic(i, j); if(n != size*size-1){ picdc.BitBlt(-(n%size)*(360/size), -(n/size)*(360/size), 360, 360, &bmpdc, 0, 0, SRCCOPY); tdc.BitBlt((360/size)*i+2,(360/size)*j+2, (360/size), (360/size), &picdc, 0, 0, SRCCOPY); 8 } } } dc->BitBlt(10, 10, 364, 364, &tdc, 0, 0, SRCCOPY); //将位图复制到设备环境中 编辑运行此段代码,主要实现以下功能: 1、 加载IDB_BG位图选入内存设备环境中 2、 将位图IDB_BG复制到实际的设备环境中 3、 选中Board, 规划 污水管网监理规划下载职业规划大学生职业规划个人职业规划职业规划论文 出九宫格边框 4、 将位图划分成9份分别复制到实际的设备环境中,最后一格为空格 3. 对话框初始显示 CMyDlg::CMyDlg(CWnd* pParent /*=NULL*/) : CDialog(CMyDlg::IDD, pParent) { //{{AFX_DATA_INIT(CMyDlg) //}}AFX_DATA_INIT // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); begin = TRUE; step = 0; pic.Load(IDR_PIC_VIEW); size = 3; border = TRUE; } 编辑运行此段代码,主要实现以下功能: 构建函数实现九宫格对话框的初始显示,包含了对话框的图标、3*3默认模式、图片的加载、step置0等。 5.2 MFC中图像的显示 MFC中实现图片的显示需要先加载图片资源,然后通过设备环境的转换来实现。 编程步骤如下: 1. 启动Visual C++6.0,生成一个基于对话框结构的应用程序,对话框的基类 为CMyDlg,同时将该程序命名为"九宫格拼图"; 9 2( 在应用程序的项目代码中添加"CPicture"类; 3( 使用资源编辑器向程序中添加Jepg等格式的图像资源; 4( 添加代码,编译运行程序。 程序代码 class CPicture { public: CPicture(); //构造函数 ~CPicture(); //虚构函数 BOOL Load(UINT nIDRes); //从资源中加载,寻找“IMAGE”类型 BOOL Load(LPCTSTR pszPathName); //从路径名中加载 BOOL Load(CFile& file); //从File文件中加载 BOOL Load(CArchive& ar); //从创建文档的流中加载 BOOL Load(IStream* pstm); //从流中加载(IStream) BOOL Render(CDC* pDC, CRect rc=CRect(0,0,0,0), LPCRECT prcMFBounds=NULL) const; //转换设备环境,为IPicture而将其转换为HIMETRIC CSize GetImageSize(CDC* pDC=NULL) const; //获得像素形式的图像尺寸 将图片放在资源管理器中的“IMAGE”类型中,然后在成员函数BOOL Load(UINT nIDRes)添加代码使得存储器可以加载资源。 BOOL CPicture::Load(UINT nIDRes) { HINSTANCE hInst = AfxGetResourceHandle(); HRSRC hRsrc = ::FindResource(hInst, MAKEINTRESOURCE(nIDRes), "IMAGE"); //从资源文件中加载名为“IMAGE”的资源 if (!hRsrc) return FALSE; DWORD len = SizeofResource(hInst, hRsrc); BYTE* lpRsrc = (BYTE*)LoadResource(hInst, hRsrc); //将资源加载进存储器 if (!lpRsrc) return FALSE; 10 CMemFile file(lpRsrc, len); //创建储存文件并加载它 BOOL bRet = Load(file); FreeResource(hRsrc); GlobalFree(lpRsrc); return bRet; } 由于加载的图片无法在MFC中正常显示,所以要通过转换设备环境才可以显示。MFC将设备描述表(DC)和图形设备接口封装在一起,建立了设备描述类——CDC类,CDC类是直接从CObject派生处理,CDC类主要功能是定义设备描述表对象,提供在显示器上绘图和打印机上图形输出的方法。CDC类提供的方法可以实现GDI的所有图形输出:包括控制着色和调色板、处理坐标映射和装换、绘制多边形和区域、使用不同字体绘制正文、处理元文件等等。 BOOL CPicture::Render(CDC* pDC, CRect rc, LPCRECT prcMFBounds) const { //转换设备环境 ASSERT(pDC); if (rc.IsRectNull()) { CSize sz = GetImageSize(pDC); rc.right = sz.cx; rc.bottom = sz.cy; } long hmWidth,hmHeight; GetHIMETRICSize(hmWidth, hmHeight); m_spIPicture->Render(*pDC, rc.left, rc.top, rc.Width(), rc.Height(), 0, hmHeight, hmWidth, -hmHeight, prcMFBounds); return TRUE; } CSize CPicture::GetImageSize(CDC* pDC) const { //获得像素形式的图像尺寸 if (!m_spIPicture) return CSize(0,0); LONG hmWidth, hmHeight; m_spIPicture->get_Width(&hmWidth); 11 m_spIPicture->get_Height(&hmHeight); CSize sz(hmWidth,hmHeight); if (pDC==NULL) { CWindowDC dc(NULL); dc.HIMETRICtoDP(&sz); } else { pDC->HIMETRICtoDP(&sz); } return sz; } 通过这样的设备环境转换,就可以实现在MFC应用程序中显示JPG/GIF图像文件。 5.3 图片处理与游戏规则 设计一些成员函数来实现图片的操作处理,例如图片的获取,打乱与移动等 Cspell成员函数 CSpell ~CSpell GetPic Move Init ReCreat e 图4 CSpell类成员函数关系 其中成员函数CSpell负责构造N*N的框架,包含了一个空缺模块blank;~CSpell负责删除该框架;ReCreate负责重新构造框架;GetPic负责划分图片到该框架中;Move负责拼图相关操作;Init负责随机打乱框架。 CSpell::CSpell(int w, int h, int bx, int by){ width = w; height = h; bx = (bx>=w)?(w-1):(bx<0 ? 0 : bx); by = (by>=h)?(h-1):(by<0 ? 0 : by); blank = by * w + bx; 12 map = new int[w*h]; for(int i = 0; i < w*h; i++){ map[i] = i; } Init(); } 编辑运行此段代码,主要实现以下功能: 构造函数负责创建W*H的内存数据并显示初始九宫图(其中带有一个空 模板 个人简介word模板免费下载关于员工迟到处罚通告模板康奈尔office模板下载康奈尔 笔记本 模板 下载软件方案模板免费下载 ),并用0~8标记各模板。 CSpell::~CSpell(){ delete [] map; } 编辑运行此段代码,主要实现以下功能: 虚构函数负责删除申请的内存数据。 int CSpell::GetPic(int w, int h){ if(w < 0 || w >= width || h < 0 || h >= height){ return -1; } return map[h*width + w]; } 编辑运行此段代码,主要实现以下功能: 当用户点击获取到某个位置的图片时,返回标记模板的数字,否则返回-1。 int CSpell::Move(int w, int h){ if(w < 0 || w >= width || h < 0 || h >= height){ return -10; } if(blank == map[h*width+w]){ return -1; } if(blank == GetPic(w-1, h)){ int t = map[h*width+w]; map[h*width+w] = map[h*width+w-1]; map[h*width+w-1] = t; 13 } else if(blank == GetPic(w+1, h)){ int t = map[h*width+w]; map[h*width+w] = map[h*width+w+1]; map[h*width+w+1] = t; } else if(blank == GetPic(w, h-1)){ int t = map[h*width+w]; map[h*width+w] = map[(h-1)*width+w]; map[(h-1)*width+w] = t; } else if(blank == GetPic(w, h+1)){ int t = map[h*width+w]; map[h*width+w] = map[(h+1)*width+w]; map[(h+1)*width+w] = t; } else{ return -1; } for(int i = 0; i < LENGTH; i++){ if(i != map[i]){ return 0; } } return 1; } 编辑运行此段代码,主要实现以下功能: 1. 没有选中的模板无法移动 2. 空模板无法移动 3. 模板旁(上下左右)有空模板可以进行移动 4. 标记模板的数字如果和0~8一一对应时无法继续移动,否则可以继续移 动。 void CSpell::Init(){ 14 srand(time(NULL)); int a, b, t; int i = 0, d = 1; while(i++ < LENGTH || d == 0){// 交换至少单位数量次 do{ a = rand()%(LENGTH); b = rand()%(LENGTH); } while(a == b); t = map[a]; map[a] = map[b]; map[b] = t; // 计算距离,必须要模为1有解 if(blank == map[a] || blank == map[b]){ int w = a%width - b%width + 1; int h = a/width - b/width; w = w<0?-w:w; h = h<0?-h:h; d = (d+w+h)%2; } else{ d = !d; } } } 编辑运行此段代码,主要实现以下功能: Init()函数负责图片的打乱,9个模板其中选中2个进行交换,如果选中的2个模板其中有一个是空模板的话,则计算空模板与它交换的模板之间的距离(x上的差值dx与y上的差值dy)如果(dx+dy+1)%2=0的话则有解,否则无解,无法拼合出原图。 15 随机打乱流程图: 开始 构建随机因子time 初始化i和d N IGetMenu(); pMenu->CheckMenuItem(ID_MENU_3, MF_CHECKED); pMenu->CheckMenuItem(ID_MENU_4, MF_UNCHECKED); spell.ReCreate(3, 3, 2, 2); size = 3; OnMenuBegin(); } } 编辑运行此段代码,主要实现以下功能: 当用户选择菜单3*3时,确保3*3被选中,4*4不被选中,创建3*3的九宫图。之后调用OnMenuBegin()函数,实行打乱等操作。 void CMyDlg::OnMenuOpen() { // 打开文件 CFileDialog file(true, NULL, NULL, OFN_OVERWRITEPROMPT, "图片文件|*.bmp;*.jpg;*.gif|*.jpg|*.jpg|*.bmp|*.bmp|*.gif|*.gif|", NULL); if(file.DoModal()==IDOK){ pic.Load(file.GetPathName()); Invalidate(FALSE); } } 编辑运行此段代码,主要实现以下功能: 实行资源管理器外的图片调用,完成了用户随意选择图片玩的功能。 18 5.5 游戏结束标志 void CMyDlg::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default if(begin){ if(point.x > 12 && point.x < 372 && point.y > 12 && point.y < 372){ int w = (point.x - 12) / (360/size); int h = (point.y - 12) / (360/size); int r = spell.Move(w, h); Invalidate(FALSE); if(0 <= r){ step ++; CString str; str.Format("%d", step); SetDlgItemText(IDC_STEP, str); } if(1 == r){ MessageBox("完成~"); begin = FALSE; } } } CDialog::OnLButtonDown(nFlags, point); } 19 游戏结束标志流程图: 开始 判断鼠标是否点 在分割模块内 Y 移动鼠标左键点到的那 个模块 N 判断标志r是否N 大于等于0 Y 步数加一 文本显示Step N 判断R是否等于 1 Y 提示完成 结束 图6结束标志流程图 编辑运行此段代码,主要实现以下功能: 这里定义了一个循环,游戏开始后,可以移动模板,如果判断游戏结束的标 志r不等于1的话则可以继续玩,同时标志用户移动次数的step逐次增加1;如 果r=1的话则弹出一个对话框显示用户完成拼图游戏。 20 6 编译运行并测试 编译并运行后,出现“九宫格拼图”。如图7所示: 图7开始界面 完成拼图后,弹出”完成”对话框。 如图8所示: 图8完成界面 21 7总结 经过这几个月的开发研究,虽然曾经出现了很多的编辑错误,但是最终还是完成了此次的论文,从中学到了许多的知识。例如VC的MFC窗口编程设计、图片的显示等方面,基本上满足了设计所提出的要求,能够编辑出九宫格拼图游戏,解决了图片固定打乱的缺点,但在一些方面上还存在着不足之处,例如,拼完的图片总是缺一块,给人的感觉就不是很完整。可能是自己的能力不足吧,自此我还应该加强自己的窗口编程设计能力,使其变得完善。 22 参考文献 [1] 张荣梅,梁晓林.Visual C++实用教程[M].冶金工业出版社,2004. [2] 郑阿奇.Visual C++ 实用教程(第2版)[M].电子工业出版社,2003. [3] 孙鑫 余安萍.VC++深入详解[M].电子工业出版社,2006. [4] 陈清华等.Visual C++课程设计案例精选与编程指导[C].东南大学出版社, 2004. [5] 严华峰等.VISUAL C++课程设计案例精编(第二版)[A].中国水利水电出版 社 ,2004. [6] 周鸣扬.VISUAL C++界面编程技术[M].北京希望电子,2003. [7] 荣钦科技.Visual C++游戏编程基础[M].电子工业出版社,2004. [8] 罗伟坚.Visual C++经典游戏程序设计[Z].人民邮电出版社,2006. [9] 荣钦科技.VISUAL C++游戏设计[M].北京科海电子出版社,2005. [10] MSDN for Visual Studio 6.0. [11] 设计模式——可复用面向对象软件的基础[A],Erich Gamma/Richard Helm/Ralph Johnson/John Vlissides著,李英军/蔡敏/刘建东 等译.机 械工业出版社. [12] 深入浅出MFC(第2版)[EB/OL].侯俊杰著.华中科技大学出版社. A Beginner 's Guide to Pointers,Andrew Peace [13] C++编程思想[J].Bruce Eckel著.刘宗田/邢大红/孙慧杰 等译.机械工业 出版社. [14] 21天学通C++[M].Jesse Liberty著.康博创作室译.人民邮电出版社. [15] Visual C++实用教材(第3版)[M]. 丁有和/郑进/周怡君编著. [16] J.Semke,J.Mahdavi,and M.Mathis,Automatic TCP Buffer Tunung[J],in proceedings of ACM SIGCOMM’98 pp.315-323,august 1998. [17] Srinivasan Keshav,a Control-Theoretic Approach to FlowControl[J],In Proceedings of ACM SIGCOMM,1991. 23 致谢 在这次毕业论文中同学之间互相帮助,对于即将面临毕业的我们来说是一次很有意义的经历,大学四年都一起走过了,在最后我们可以聚在一起讨论学习,研究专业问题,进而更好的了解我们每个人的兴趣之所在,明确我们的人生理想,进而在今后的生活和工作中更好的发挥自己的优势,学好自己的专业,成为一个对于社会有用的人,感谢我的同学们,在我绝望的时候给了我希望,没有他们,论文就不会有这么好,甚至无法完成。 在此更要感谢我的老师xxx,是你的细心指导和关怀,使我能够顺利的完成毕业论文。老师对于学生总是默默的付出,尽管很多时候我们自己并没有特别重视论文的写作,没有按时完成老师的任务,但是老师还是能够主动的和我们联系,告诉我们应该怎么样修改论文,怎么样按要求完成论文相关的工作。老师的检查总是很仔细的,可以认真的看论文的每一个细小的格式要求,认真的读每一个同学的论文,然后提出最中肯的意见,这是很难得的。 24 25 26
本文档为【VC++拼图游戏设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_003124
暂无简介~
格式:doc
大小:186KB
软件:Word
页数:34
分类:企业经营
上传时间:2017-09-05
浏览量:36