资源预览内容
第1页 / 共37页
第2页 / 共37页
第3页 / 共37页
第4页 / 共37页
第5页 / 共37页
第6页 / 共37页
第7页 / 共37页
第8页 / 共37页
第9页 / 共37页
第10页 / 共37页
亲,该文档总共37页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
基于VC+的8数码游戏开发The Development of 8 Digital Game Based on VC+目 录第1章 绪 论11.1课题背景及意义11.2八数码游戏的研究现状11.3本论文的研究内容21.4论文结构3第2章 游戏开发工具与关键技术介绍42.1 Visual C+概述42.2 MFC 应用程序框架52.3关键技术介绍6第3章 游戏的系统分析73.1需求分析73.2功能需求分析73.3可行性分析83.4游戏特色分析9第4章 游戏功能模块设计104.1系统模块设计104.2移动模块和鼠标交互模块流程图设计104.2.1移动模块设计104.2.2鼠标交互设计114.3详细设计124.3.1主窗体界面124.3.2图像的绘制124.3.3数据输入与输出134.3.4数据的移动134.3.5数据的检测144.3.6自动演示144.3.7游戏规则144.4算法分析154.4.1问题描述154.4.2算法设计15第5章 游戏功能模块的具体实现185.1可达性判断185.2移动模块的具体实现195.3自动演示模块的具体实现215.4路径搜索的实现225.5算法描述与实现235.5.1算法描述235.5.2算法的具体实现245.6鼠标交互操作的实现25第6章 游戏的数据测试266.1输入有效数据266.2输入不同为奇偶的数据286.3输入不符合规定的数据296.4测试总结30第7章 总结和展望31参考文献32致 谢33基于VC+的8数码游戏设计与开发摘 要八数码游戏是在33方格盘上,放有八个数码,剩下一个位置为空,每一空格其上下左右的数码可移至空格。问题给定初始位置和目标位置,要求通过一系列的数码移动,将初始状态转化为目标状态。作为本游戏的开发工具,Visual C+成为首选。它具有可视化的编程界面、详细的提示、以及完善的帮助文档,使得我在软件开发过程中少走了很多弯路,提高了我的开发效率。其中的MFC是由微软公司编写的一套专门用于 Windows 编程的 C+ 基础类库,它封装了 Windows API 的绝大多数功能,为用户开发 Windows 应用程序建立了一个非常灵活的应用程序框架。 本论文主要工作是该游戏的主要的功能模块的设计和实现:判断游戏是否有解,空白模块移动,自动演示模块,最优解搜索功能的实现,及鼠标交互操作的功能。其中最优解搜索功能主要是使用了A*算法来实现最短路径搜索。【关键词】 数码游戏 VC+ MFC A*算法 最短路径搜索 The Design and Development of8 Digital Game Based on VC+Abstract Digital games are eight 3 3 grid on the plate, placed eight digital, leaving a position is empty, its top and bottom of each box can be moved around the digital space.Problem given the initial position and target location, requiring a series of digital mobile, the initial state into a goal state. As the game development tools, Visual C+ preferred.It has a visual programming interface, the detailed tips, and complete help documentation, made me less in the software development process take a lot of detours, improve the efficiency of my development.MFC is one of a set of written specifically for Microsoft Windows Programming C+ based class library that encapsulates the vast majority of Windows API functions for users to develop Windows applications created a very flexible application framework. This thesis work is the games main function modules of the design and implementation: to determine whether the solvability of the game, move the blank module, automatic presentation module, the search function to achieve the optimal solution, and mouse interaction function.Search the optimal solution which is mainly used to achieve A * shortest path algorithm.【Key words】Digital Games MFC A * algorithm Shortest Path I 第1章 绪 论随着世界经济的长足发展和计算机技术的日益成熟,计算机被应用到人类活动的各个领域,各种应用软件也相继问世,这其中有相当一部分是游戏软件。使用游戏软件自然是为了满足人们对娱乐性的要求,而有些软件大都采用3D设计对系统配置的要求较高。在众多游戏软件中,也不乏一些小游戏的身影,它们对系统的配置要求较低。能够满足人们对娱乐性的需求,是人们在完成工作娱乐时候的最好选择。现在越来越多的人投入到这种小游戏的开发当中,它已经成为一类必不可少的游戏软件。在各种操作系统中都附带了一些小的游戏,而这些游戏也成为电脑用户软件中不可或缺的一部分。如数码游戏、扫雷等。1.1课题背景及意义 1、背景说明8数码游戏操作能培养手眼协调能力游戏需要耐心的操作,以及手眼协调能力,只要一不协调就不能将数据块放在正确的位置。学习解决问题的方法及策略玩8数码游戏能学习推理思考能力,因为尝试不同的选择,到决定正确的一块放下去,也就是经过假设、判断到选择的过程,能让玩家学习运用逻辑来解决问题的方法。本程序使用的是微软最新开发的软件:Visual C+,VC+比C更简洁,为可视化界面操作,利用类实现各种不同的功能。2、课题意义在人工智能领域中,八数码问题一直都是一个游戏难题。介绍了八数码问题, 然后在启发式搜索算法上对A* 算法定义进行了解释,并在其旨在提高搜索效率的方面作了比较详尽的介绍,详细描述了基于图搜索算法的解决此类问题的一种启发式搜索算法A* 算法。再依据这种算法用可视化编程语言VC+ + 6.0 来实现八数码问题的求解过程,取得了预期的搜索解,提高了搜索效率。编译本程序的目的一是对自己所学知识的巩固,二是希望可以给玩家带来全新的感受。1.2 八数码游戏的研究现状在信息社会里,人们越来越依赖于搜索技术获取有用的信息,搜索是人工智能中的一个基本问题,是推理不可分割的一部分,它直接关系到智能系统的性能和运行效率。在人工智能领域,所提供的每种问题求解方法,都需要某种对解答的搜索,从提出问题(即初始状态)到问题的解决(即最终状态),有个求解的过程,也就是搜索过程。用于搜索的方法13主要有两大类:一类是盲目搜索,另一类是启发式搜索。盲目搜索是指在不具有对待定问题的任何有关信息的条件下,按固定的步骤进行的搜索,如深度优先搜索和广度优先搜索;启发式搜索是指在搜索中加入了与问题有关的启发性信息,这些信息可以指导搜索朝着最有希望的方向前进,加速问题的求解过程,并找到最优解,如A* 算法。八数码游戏的研究现状主要是如何选择更更快速、更高效地找到问题的解答。深度优先搜索是按照一定的顺序先搜索完一个分支,再搜索另一个分支,以至找到目标为止。由于一个有解的问题可能含有无穷分支,该搜索如果误入无穷分枝(即深度无限),则不可能找到目标节点。所以,深度优先搜索策略是不完备的。另外,应用此策略得到的解不一定是最佳解。广度优先搜索是从初始状态一层一层向下找,直到找到目标为止。当我们发现目标节点时,可以同时找到从初始状态到达目标状态的一条最短路径。因此,这种策略是完备的。以上两种搜索有一个很大的缺陷,就是它们都是在一个给定的状态空间中穷举,极容易遇到以下问题:搜索中易出现循环,即访问某一个状态后又来访问该状态;搜索路径不佳便无法得到较好的中间状态集(即中间状态集的元素数量过大);搜索过程中访问了过多的无用状态,这些状态对最后的结果无帮助。通过比较显示出启发式搜索的优越性:一方面,当发现目标节点时,可以同时找到从初始状态到达目标状态的一条最短路径;另一方面,由于搜索不是盲目的,因此不需要扩展每一层的所有节点,只需要扩展最有希望到达目标的节点即可。但是,对于这种搜索方式,使用正确的评估函数是相当重要的,评估函数选择的正确与否与搜索的效率直接相关。所以,在八数码游戏中,我选择了启发式搜索,即A*算法来实现最优解的搜索功能。1.3本论文的研究内容本文深入分析了课题的背景及意义、八数码游戏的现状和发展趋势、对游戏的需求分析(讲述游戏的功能和对操作进行分析)、游戏特色进行了分析说明。在前人的研究基础上结合算法处理对8数码游戏进行设计。本游戏在最优解搜索部分通过在对各种算法的可行性和效率进行了比较,最终选择了A*算法来实现该模块的功能。简单介绍了该游戏开发工具Visual C+和MFC,选择这两种开发工具简化了游戏的界面的设计与实现。通过系统的分析和策划,实现了游戏的主要功能。本论文主要工作内容是该游戏的主要的功能模块的设计和实现,如:判断游戏是否有解,空白模块移动,自动演示模块,最优解搜索功能的实现,及鼠标交互操作的功能。其中最优解搜索功能主要是使用了A*算法来实现最短路径搜索。在完成该游戏之后,还进行了部分的游戏数据测试,来判断该游戏的功能是否正确的实现。1.4论文结构第一章:主要介绍了课题的研究课题研究背景和意义、八数码游戏的发展现状、以及论文的研究内容,并介绍了本游戏的主要工作。第二章:主要是对游戏主要开发工具VisualC+、MFC的概述、使用的主要技术。第三章:主要介绍了游戏的系统分析,包括:需求分析、功能分析、可行性分析等。第四章:主要是对游戏进行设计,包括框架搭建、算法设计及分析。第五章:主要是进行游戏的实现,包括游戏的界面、核心功能、用户交互操作的实现。第六章:主要介绍了游戏的部分数据测试,以检测游戏的主要功能是否能够准确执行。第七章:对自己所做的工作进行总结,同时对数码游戏做了展望。
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号