基于wpf的数独游戏的开发-毕设论文.doc
《基于wpf的数独游戏的开发-毕设论文.doc》由会员分享,可在线阅读,更多相关《基于wpf的数独游戏的开发-毕设论文.doc(27页珍藏版)》请在咨信网上搜索。
1、毕业设计(论文)基于WPF的数独游戏的开发毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;
2、学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 【摘 要】“数独”(Sudoku),顾名思义每个数字只能出现一次。玩家必须在一个已经填充有几个数字的nn矩阵中填入数字,使得每一行、列和宫格里的数字不重复。这种游戏全面考验做题者观察能力和推理能力,虽然玩法简单,但数字排列方式却千变万化,所以不少教育者认为数独游戏是训练头脑的绝佳方式。因此,一些科学家和研究人员建议将数独游戏作为日常活动的一部分。游戏将在.NET Framework 3.5架
3、构上进行开发。主要使用的技术 WPF(Windows Presentation Foundation)的开发技术,是微软新一代图形系统。基于DirectX 9/10技术的WPF不仅带来了前所未有的3D界面,而且其图形向量渲染引擎也大大改进了传统的2D界面。通过WPF,.NET Framework 3.5提供了一种比较完整和一致的解决方案,以用于应对用户界面方面的难题。程序员在WPF的帮助下,将更加有效的工作开发出媲美Mac程序的炫酷界面。本论文着眼于WPF技术的应用,开发一款具有精致美观界面的Windows游戏程序数独。本论文介绍了WPF的相关技术及本程序的结构分析和具体功能的实现。【关键词】
4、数独;WPF;C#;XAML目录1.绪论11.1选题背景11.2数独游戏简介12.开发环境及相关技术的介绍22.1.NET Framework开发平台22.2WPF简介22.3传统Windows游戏开发技术比较22.4WPF技术的开发优势32.5数独的通解方法33.可行性分析与需求分析43.1系统软件开发环境43.2系统任务的可行性分析43.2.1经济可行性43.2.2技术可行性43.2.3系统安全性分析43.3系统功能需求分析44.系统设计64.1系统模块划分64.2模块内部关系说明64.3数独的数据结构设计74.4逻辑处理设计74.4.1快速随即生成数独题目74.4.2使用解题器生成数独题
5、目84.4.3数独解题算法的实现84.5UI界面设计94.5.1游戏棋盘设计94.5.2游戏菜单设计104.5.3计时器设计104.5.4解题器插件设计104.5.5其他界面设计104.6用户功能实现105.系统实现115.1数独的数据结构实现115.2逻辑处理模块实现125.2.1快速随机生成数独题目实现125.2.2使用解题器生成数独题目125.2.3解题器实现125.3UI界面实现145.3.1游戏菜单实现145.3.2数独棋盘实现155.3.3计时器实现165.3.4解题器实现175.3.5其他界面实现175.4用户功能模块实现175.4.1新游戏实现175.4.2保存游戏、读取游戏实
6、现185.4.3游戏设定185.4.4计时功能实现185.4.5解题器插件实现186.测试打包的过程196.1打包196.2发现的BUG及解决情况206.3未完善的功能207.结论217.1游戏的总结和展望217.2感想21221. 绪论1.1 选题背景数独游戏,由于规则简单,却变化无穷,在推敲之中完全不必用到数学计算,只需运用逻辑推理能力,所以无论老少中青男女,人人都可以玩,而且容易入手、容易入迷。作为数独游戏的爱好者,我认为有必要在Windows上开发一个功能全面的数独游戏。选择以WPF技术开发是因为WPF其实不仅仅是图形引擎而已,它将给Windows应用程序的开发带来一次革命,因为它的架
7、构提供了一种崭新的开发模式。对于普通用户而言,最直观的就是界面越来越漂亮,看起来越来越舒服了;但对于开发人员而言,界面显示和代码将更好的得到分离,这与从前的桌面应用程序开发有很多不同(界面设置和代码是融合在一起的)。目前,WPF已经有很大的推广,很多开发人员主要以技术研究为主,也有少数公司已经开始从事基于WPF的产品研发工作。WPF它代表了Windows编程的未来,是一项Windows开发者需要紧密关注的技术。开发一款WPF版的数独游戏不但可以检验自己大学四年的学习成果,也可以为广大数独爱好者提供一个良好的游戏体验过程,可谓一举两得。1.2 数独游戏简介“数独”来自日文发音“Sudoku”,但
8、概念源自“拉丁方块”,是18世纪末瑞士数学家莱昂哈德欧拉发明游戏。常见的数独游戏规格是99,游戏规则很简单:在九个九宫格里,填入1到9的数字,让每个数字所在的每个行、每个列和每个宫格里都不重复的出现一次。谜题中会预先填入几个数字,其它数格则留白,玩家得依谜题中的数字分布状况,逻辑推敲出剩下的空格里是什么数字。20多年前,美国人重新挖掘它的魅力,接着日本杂志出版商在八年代末期的一本美国杂志上看到这个游戏,带回日本后,增加它的游戏难度,提出了“独立的数字”的概念,意思就是“这个数字只能出现一次”或者“这个数字必须是惟一的”,并将这个游戏命名为“数独”(Sudoku)。韦恩古德(Wayne Goul
9、d)一九九七年旅游日本时,买了一本数独游戏书,从此就迷上了,进而研究出计算机程序,并供稿给全球十几家报社,立即受到读者的热烈回响Error! Bookmark not defined.。只需九个九宫格,及1到9不重复的阿拉伯数字,也超越了文字的障碍,因此自从出现后,从东方到西方,风靡亿万人。有些人认为玩数独是缓解工作压力的最佳方式;有些人认为玩数独可以保持头脑灵活,尤其适合老年人;也有些老师认为玩数独需要耐心、专心和推理能力,所以拿数独当题目给学生练习。2. 开发环境及相关技术的介绍2.1 .NET Framework开发平台.NET Framework 是Microsoft为开发应用程序而创
10、建的一个富有革命性的新平台,其具有两个主要组件:公共语言运行库和.NET Framework类库。它的代码库可以在客户语言(如C#)中通过面向对象编程技术(OOP)来使用这些代码1 佚名.Vista之后:WPFJ. 互联网天地,2007,04:45.2 CharlesPetzold. Applications = Code + MarkupM. Microsoft Press, 2006,8 3 Karli Watson,Christian Nagel.C#入门经典(第三版)M.北京.清华大学出版社,2006,5,1-2.。2006年底,微软公司发布.NET Framework 3.0。.NE
11、T Framework 3.0默认内置于Vista操作系统中,并担当最主要的应用程序接口。.NET Framework 3.0以2.0版本为基础,同时增加四个重要组件。从高层来看,.NET 3.0基类库由表格 21 .NET 3.0的核心功能所示的技术组成4 Allen Feldman. WPF in Action with Visual Studio 2008 M.Manning Publications Co,2009.4。表格 21 .NET 3.0的核心功能技术意义WPFWPF通过集成几个先前不相关的API(2D和3D呈现、动画、控件等)为构建GUI提供了一个统一的模型WCFWCF为多
12、个分布式API提供了一个统一的编程模式WFWF提供了一种直接在.NET应用程序集成工作流的方式WCSWCS是一个身份标识无系统,用于保存和提供用户的数字标识,并提供了统一的为特定事物选择标识的接口.NET 3.0中的第一个组件WPF,是构建桌面GUI应用程序的一个全新的方式。与ASP.NET Web程序类似,WPF应用程序可以将功能与UI设计分离,这些功能使用“代码隐藏”的思路来驱动。使用XAML,界面设计人员可以尝试创作与C#类的定义相绑定的专业级的前端界面。最后,WPF应用程序还支持Web服务器承载的浏览器呈现功能5 Troelsen. C#与.NET 3.0高级程序设计M.北京.人民邮电
13、出版社.2008,11,788.。2.2 WPF简介WPF的全称是Windows Presentation Foundation,是微软新发布的Vista操作系统的三大核心开发库之一,其主要负责的是图形显示,所以叫Presentation(呈现)。它将彻底改变应用程序的用户体验,支持丰富的、具有炫丽视觉效果的交互式体验,并且可以随处实现:无论是在浏览器内、在移动设备上,还是在桌面操作系统中6 佚名. XAML EB/OL. 。作为新的图形引擎,WPF是基于DirectX的,当然增加了很多新的功能。它提供非常强大的2D和3D引擎,通过新出来的Windows Vista和Windows 7系统就可
14、以看出,其对Aero图形引擎的支持,更加让人感到神奇。2.3 传统Windows游戏开发技术比较微软在1985发行了第一个版本的Windows。从那以后,Windows进步被更新和加强,最戏剧性的是Microsoft Windows NT (1993) 和 Windows 95 (1995),Windows从16位体系结构升级到32位的体系结构。当 Windows 首先被发行时,仅仅有一种方式可以编写Windows应用程序,那就是使用C语言去编写Windows API7 佚名. Visual Studio 2008 EB/OL. 8 佚名. Expression Blend EB/OL. 。多
15、年以来,许多其他的编程语言被用在Windows编程,包括Visual Basic 和C+。基于C语言,当前提供给编写Windows应用程序的4条途径,下列表格 22使用基于C语言开发的Windows应用程序详细说明。 表格 22使用基于C语言开发的Windows应用程序引进年份语言接口1985CWindows API1992C+MFC2001C# Windows Forms 2006C# Windows Presentation Foundation 过去几年采用的主流Windows开发技术是MFC和Windows Forms,下面将其与WPF开发相比较:A. 界面显示速度。MFC是在本机生成
16、代码,速度很快。可是,消息循环,减缓了界面显示速度。WPF是可以硬件加速的,在DirectX 9的显卡和安装了较新的驱动的情况下,WPF会得到部分或完全的硬件加速。Windows Forms是基于GDI+的,没有硬件加速。所以,长远来说,WPF有更好的性能。 B. 开发效率上,Windows Forms效率最高,MFC最低。MFC开发效率低,作为现在的软件开发项目来说时间跟效率能决定项目的成败,所以应该尽量选择开发效率高的WPF而避免使用MFC。C. 开发灵活性和美观上,WPF远高于Windows Forms和MFC,MFC要开发出一个华丽的UI极其困难,而WPF不需要使用商业控件就可以很容易
17、就做出Windows 7那样的UI特效。D. 使用范围上,WPF范围最广,WPF意图利用简化版本WPF/E走进各种装置,包括浏览器和手机。目前Windows Forms虽然可以用在Windows Mobile 5上,但是不能用在浏览器内。而WPF/E可以用在Windows Mobile 6上和各种浏览器内。WPF大有取代Windows Forms和MFC之势,从未来net的发展看,MFC会变成一种经典,作为一种技术来供开发者学习。随着时代发展,WPF最终实现桌面应用程序和浏览器应用程序的统一。 2.4 WPF技术的开发优势使用WPF技术进行开发有很多优势,其优势如下:A. 充分使用现代的硬件硬
18、件在近十年改变了很多,但是想利用硬件要求专业化的编码,可能需要使用DirectX或OpenGL。通过WPF,程序员可以更好的利用硬件的优势进行编程。B. 使用现代的软件设计当Windows 的图形分系统最初被创造时,面向对象的开发、设计模式,还有垃圾收集这类的事情是不存在的或者并不成熟的。C. 界面显示和代码将更好的得到分离使得开发人员和设计人员能够更加密切地合作完成同一个项目,而不会延误各自的进度。D. 简化编码有许多IDE对WPF的开发提供支持,比如Visual Studio和Expression Blend,这些工具将为程序员与设计人员节省更多的编码时间。总而言之,通过WPF,.NET
19、Framework 3.0提供了一种比较完整和一致的解决方案,以用于应对用户界面方面的难题。2.5 数独的通解方法数独解法全是由规则衍生出来的,基本解法分为两类思路,一类为基础摒除法,一类为唯一法9。基础摒除法就是利用19 的数字在每一行、每一列、每一宫都只能出现一次的规则进行解题的方法。首先,根据横列、竖列和宫格的限制条件排除各个数格不可能出现的数字,并从19将各个可能的候选数用小字体逐个写进每个空白的格子。寻找九宫格摒除解:找到了某候选数在某一个九宫格可填入的位置只余一个的情形,亦即找到了该数在该九宫格中的填入位置。寻找列摒除解:找到了某候选数在某列可填入的位置只余一个的情形,亦即找到了该
20、数在该列中的填入位置。寻找行摒除解:找到了某候选数在某行可填入的位置只余一个的情形,亦即找到了该数在该行中的填入位置。基础摒除法的提升方法是区块摒除法,是直观法中使用频率最高的方法之一。唯一解法如下:当某行已填数字的宫格达到8个,那么该行剩余宫格能填的数字就只剩下那个还没出现过的数字了,成为行的唯一解。当某列已填数字的宫格达到8个,那么该列剩余宫格能填的数字就只剩下那个还没出现过的数字了,成为列的唯一解。当某九宫格已填数字的宫格达到8个,那么该九宫格剩余宫格能填的数字就只剩下那个还没出现过的数字了,成为九宫格的唯一解。3. 可行性分析与需求分析3.1 系统软件开发环境系统环境:Windows
21、Vista或Windows 7以上版本或者Windows XP安装.NET Framework 3.5硬件环境:支持DirectX9/10的显卡支持开发语言:C#和XAMLIDE:Microsoft Visual Studio 2008、Expression Blend 3.2 系统任务的可行性分析3.2.1 经济可行性本游戏使用面向对象编程思想设计,易于编写和维护,总体开发成本低。由于游戏规则简单,入门度低,人人都可以玩,而且容易入迷。3.2.2 技术可行性.NET Framework 3.5提供了丰富的公共语言运行库和基类库,对于本游戏的开发可以简化编码,避免不必要的错误。同时使用的WPF
22、技术提供了一种比较完整和一致的解决方案,以用于应对用户界面设计方面的难题。AI算法方面,将建立解题器插件,可以提供多种算法来解决数独谜题。充分利用当今计算机的优越性能,使用成熟的算法递归算法,实现起来容易。3.2.3 系统安全性分析游戏使用到的解题器是经过动态加载预编译模块实现的,为了帮助保护计算机系统防止受信任的代码有意或无意地危害安全,使用了.NET Framework提供了一种称为“代码访问安全性”的安全机制。根据代码请求的权限和安全策略允许的操作,向加载的每个程序集授予权限,这将最大限度地减少由于代码中的安全脆弱性而造成的损害。.NET Framework 的垃圾回收机制,通过回收器管
23、理应用程序的内存分配和释放,从而使内存得到优化。垃圾回收器优化引擎根据正在进行的分配情况确定执行回收的最佳时间。当垃圾回收器执行回收时,它检查托管堆中不再被应用程序使用的对象并执行必要的操作来回收它们占用的内存10 佚名. MSDN LibraryEB/OL. ms-help:/MS.MSDNQTR.v90.chs/dnmsdn2/html/msdnstart.htm.。3.3 系统功能需求分析按照用户需求,本系统大致分为三大功能:游戏界面(UI)功能、数据处理功能和用户功能。游戏界面(UI)功能,向用户显示游戏的信息,包括数独棋盘、计时器、游戏菜单等。数据处理功能负责内部数据的处理,是该游戏
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 wpf 游戏 开发 论文
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【胜****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【胜****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。