版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
六子棋游戏的设计与开发摘要:随着现代互联网技术的飞速发展,游戏已经成为人们日常生活中不可缺少的娱乐和减压方式。在众多小游戏中,棋类游戏属于比较受欢迎的一种,该类型游戏不仅具有趣味性、博弈性,长期坚持还能够提高参与者的综合素质,对于识记能力、思考能力、计算能力和专注力都有帮助。本研究是一个利用C++的第三方GUI设计工具,Qt为程序设计界面,并结合软件工程的思想开发的一款基于QT的六子棋游戏对弈软件。玩家通过轮流控制黑白棋子进行移动,来实现双人对弈搏杀的功能。本文对项目需求及游戏的设计和具体实现进行了详细的分析。关键词:QT;六子棋游戏;游戏开发ThedesignanddevelopmentofsixchessgameAbstract:WiththerapiddevelopmentofmodernInternettechnology,gameshavebecomeanindispensablewayofentertainmentanddecompressioninpeople'sdailylife.Inmanysmallgames,theboardgameisarelativelypopularone.Thistypeofgamenotonlyhasfunandgamenature,butalsocanimprovethecomprehensivequalityofparticipantsforalongtime,whichishelpfulfortheabilityofmemory,thinking,calculationandconcentration.ThisresearchisagameplayingsoftwarebasedonQT,whichisdevelopedbyusingthethird-partyGUIdesigntoolofC++,QTastheprogramminginterface,andtheideaofsoftwareengineering.Playerscancontrolblackandwhitechesspiecestomoveinturn,soastorealizethefunctionofdueling.Inthispaper,theprojectrequirementsandthedesignandimplementationofthegameareanalyzedindetail.Keywords:QT;sixchessgame;Gamedevelopment
目录TOC\o"1-2"\h\u第一章绪论 41.1游戏产业的介绍和发展概况 41.2研究游戏的目的与背景 41.3本文组织结构 5第二章软件技术与特点 7第三章游戏概要设计 83.1需求分析 83.2总体设计及框架 93.2.1游戏主要框架 93.2.1系统流程图 93.2.2游戏主要规则 113.3模块功能概述 12第四章六子棋游戏的系统实现 134.1登录界面的实现 134.2游戏主界面的实现 134.3游戏走棋环节的实现 144.4输赢界面的实现 15第五章系统测试 175.1测试方法 175.2测试过程 175.3测试环境 185.4功能测试 185.5结果分析 20第六章总结 21参考文献 228第一章绪论游戏产业的介绍和发展概况游戏产业是集网络技术、电子信息技术、文学艺术媒体技术于一体的复合型产业。它具有较高的产业附加值,能够积极推动It、电信等相关产业发展。近年来,游戏产业发展趋势十分良好,游戏产品及相应服务的供应链逐步完善,产业链形成。中国的游戏市场用户规模增长主要有三个阶段:2009年至2011年为高速增长阶段,2012年至2013年为稳固增长阶段、2014年至2018年为低速增长阶段。2014至2018年国内游戏市场用户规模分别为5.17亿人、5.34亿人、5.66亿人、5.83亿人和6.26亿人,同比分别增长4.44%、3.29%、5.99%、3.00%和7.3%。【1】2019年中国游戏用户规模达6.4亿人,同比增长2.8%。【2】近9年来,中国游戏市场规模均保持高速增长态势。行业销售规模超过2000亿元,近三年复合增长21.2%。2011年以前,游戏市场规模的增长主要来自用户数量的快速增长和网页游戏的发展。2011年后,在网页游戏产业高速增长的前提下,移动互联网逐步发展,移动游戏市场不断完善和扩大,游戏产业规模进一步提升。2014年至2017年,中国游戏市场虽仍保持增长态势,但与前几年的快速发展相比,这四年的增长率呈下降趋势,销售收入增速有所放缓。这主要受用户需求的提高、新产品的竞争力、用户需求的变化等因素的影响。2018年和2019年的数据证明,虽然国内游戏市场容量趋于饱和,但通过不断的创新和研究,仍有很大的挖掘空间。研究游戏的目的与背景1.2.1六子棋发展现状六子棋是流传在中国民间的一种版图游戏,有近百年或以上历史,是一种双人对弈搏杀的一种游戏,交战双方棋子数均为六颗,故称六子棋。六子棋的棋盘为3乘以3的方格。棋子可信手拿来,只要互相区分即可。旧时,农闲时,或是在人们在地里劳动停下来休息时,大家在地上画方格为棋盘,拾碎石、折树枝作为棋子,以对弈。与五子棋、象棋、跳棋等被公众喜闻乐见的其他棋类游戏相比,六子棋的传播度较少,属于小众棋类游戏,但是却同时兼具规则简单、变化复杂、游戏公平的特性。1.2.2游戏开发的意义对弈六子棋,规则简单,操作方面,实用性高,也具有一定的娱乐性与教育性,对参与者的思维及协调能力有益,能促进注意力集中,培养逻辑思维能力,对智力以及记忆力都很有帮助,值得推广。游戏开发是目前最好的推广方式。在windows操作系统下,针对游戏平台客户端,可供选择的开发和实现技术有很多。APIMFC技术、第三方开源库等等每个技术相对具有针对性,很多游戏平台客户端在进行技术选择的时候,需要选择合适的技术进行开发,否则会在开发过程中增加开发人员的工作量,导致开发效率地下、客户端稳定性能不好、难以继续开发等一系列的后果。因此,选择一个合适自身平台的开发技术对于平台客户端具有重要意义,不仅在起跑线上获得优势,整个项目成功了一半。Qt作为一个跨平台的图形用户界面应用程序和开发框架,非常适合于真正的构件编程,同时使各个组件之间的协同工作变得十分简单,执行效率高。本文选择基于Qt开发一个运行于Windows操作系统的游戏平台客户端,同时阐述了Qt的图形界面编辑器(QtDesigner),Qt的信号槽机制以及Qt的界面实现技术的使用方法Qt具有稳定,灵活,高效以及高度可扩展性等特点,符合网络游戏平台客户端开发的功能需求。本文组织结构本次论文共分六章,内容及章节的安排如下所示:第一章:绪论,介绍游戏开发的大环境,以及六子棋游戏的研究背景及意义。第二章:软件与技术特点,主要介绍游戏开发的软件开发环境与功能特性。第三章:六子棋游戏项目设计,主要围绕游戏的开发进行了一系列的需求分析,并根据分析结果,对六子棋游戏进行了模块的设计。第四章:六子棋游戏的系统实现,对游戏的核心功能进行了集中的阐述,并对核心代码做了解释和说明。第五章六子棋游戏项目的测试,通过功能测试,评价系统设计的功能是否完善。第六章:总结,对本次的毕业设计做一个总结性的陈述。
第二章软件技术与特点2.1QTQt是QtCompany在1991年开发的跨平台C图形用户界面应用程序开发框架。它可以开发GUI程序以及非GUI程序,例如控制台工具和服务器。Qt是一个面向对象的框架,它使用特殊的代码生成扩展(称为元对象编译器(MetaObjectCompiler,moc))和一些宏。Qt易于扩展,并允许进行真正的组件编程。2008年,QtCompany科技被诺基亚公司收购,Qt也因此成为诺基亚旗下的编程语言工具
[4]。2012年,Qt被Digia收购。2014年4月,跨平台集成开发环境QtCreator3.1.0正式发布,实现了对于iOS的完全支持,新增WinRT、Beautifier等插件,废弃了无Python接口的GDB调试支持,集成了基于Clang的C/C++代码模块,并对Android支持做出了调整,至此实现了全面支持iOS、Android、WP,它提供给应用程序开发者建立艺术级的图形用户界面所需的所有功能。基本上,Qt同
XWindow
上的Motif,Openwin,GTK等图形界面库和Windows平台上的
MFC,OWL,VCL,ATL是同类型的东西
[5]。2.2.GUI图形用户界面(GUI)是底层程序代码的前端表示。它会对用户选择的下拉列表框、菜单、导航栏、按钮控制等操作做出相应的前端响应,因为与传统软件相比,美观的图形用户界面给用户带来了最直观的体验,使用户能够快速启动,并逐渐受到青睐因此,目前市场上大多数软件都有图形用户界面。GUI测试是指用GUI对软件进行测试。测试应用程序的GUI,测试被测系统的功能、结构和代码。移动终端GUI测试用例是指一个完整用户行为的一系列相关事件/动作,即移动应用的GUI测试用例由一系列事件/动作组成。由此可见,移动应用GUI测试的输入一般是事件/动作,而输出一般是状态变化。状态更改可以反映在对页的更改或对页的某些元素的状态更改中。在移动应用程序的GUI测试用例中,事件和动作之间的依赖性也是一个非常重要的活动。GUI的主要功能是实现人机交互。它是用户与操作系统之间进行数据传输和交互控制的工具。用户可以通过一定的操作来控制电子设备,电子设备通过显示屏反馈用户的操作结果。GUI作为使用电子信息产品的必要组成部分,实现了人与软件之间的信息交互。这种人机交互使用户的操作更加方便。
第三章游戏概要设计系统采用当今广为流行的六子棋游戏为模版,利用C++的第三方GUI设计工具Qt为程序设计界面,并结合软件工程的思想开发一款六子棋游戏对弈软件。本软件采用P2P的模式,利用一个服务端来辅助各个客户端之间的查找和链接,服务端用于记录当前各个客户端的游戏状态,并将实时更新的各个客户端的状态发送到其他客户端,方便客户端加入其他客户端建立的游戏主机,并建立P2P链接,进行游戏。客户端是玩家用于进行六子棋对弈的主程序。3.1需求分析3.1.1功能需求初始界面:定义网格坐标位置,系统产生两个初始棋盘。棋盘、黑棋、白棋完全还原实物,保证玩家的体验感。鼠标操作:控制棋子的走向、设置提示音、退出等操作;游戏规则:根据棋势走向,判断吃子情况以及胜负情况。本软件是一款及娱乐与教育为一体的游戏,名字为六子棋,进入游戏画面后为两个初始棋盘,分别为黑棋、白棋的主要棋盘,用鼠标选定你要选的棋子,选定后,随即用鼠标选在你要落的位置,即可。游戏规则与实际一致。棋虽小道,品德为尊。下棋讲究礼仪,落子无悔,故系统完全遵循棋道,未设置悔棋功能。3.1.2可行性研究1)经济可行性。经济可行性是在成本效益分析的基础上,通过对系统经济成本的预算,判断系统是否可以开发。本游戏为免费项目,图片可在线下载。开发周期相对较短,适用于初级阶段的开发人员。2)技术可行性。技术可行性是针对系统的功能、性能等其它的一些约束条件,通过分析技术的现有水平及具备的资源能否完成系统的设计与开发。本游戏通过C++的第三方GUI设计工具,Qt为程序设计界面,而且本人具有一定的专业开发知识,加上专业书籍及老师,在技术方面完全可行。3)操作可行性。操作可行性完全是建立在技术可行性和经济可行性的基础之上,作为一款小型棋类游戏,该游戏对操作系统、设备硬件设施等并没有很大要求。因为是益智类小游戏,所以在操作方面的可行性一般不成问题。a、硬件支持:个人电脑1台,用于游戏开发并测试;无线路由器1台,用于构建局域网Wi-Fi链接。B、时刻关注游戏市场的发展动态,以市场供求为立足点,以一系列评价指标为结果提供依据。3.2总体设计及框架3.2.1游戏主要框架根据需求分析,大致将系统分解成几个模块来分别设计。系统结构如图3-1所示:图3-1系统结构图3.2.1系统流程图结合功能设计,系统流程相对比较简单,具体如图3-2、图3-3、图3-4所示:输入本机输入本机IP地址及服务器端口信息正确?登录客户端YN图3-2登录落子落子是否吃子?吃掉对应棋子YN完成图3-3吃棋落子落子一方棋子数量为0或1?游戏结束YN再来一局?NY游戏初始化退出游戏图3-4判棋3.2.2游戏主要规则此游戏默认为黑子先行,白字后行,双方轮流进行。吃子方式主要为以下三种:图3-5吃子方式1)枪毙,行棋的一方把两颗棋子移到一条直线上,并且一只棋子挨着对方的一颗棋子时,可吃对方该子。注意,被吃的这颗棋子后面不能有棋子,否则不能构成枪毙。2)抬子,行棋的一方,用两颗棋子夹住对方的一个棋子时,可吃对方该子。3)挑子,行棋的一方,用一颗棋子落至对方的两个棋子中间时,可吃对方该两个棋子。在某一方最后只剩一个棋子时,比赛结束,以剩下棋子较多的一方为胜。若最终,步入僵局,双方都无法再吃对方棋子时,则以剩下棋子较多的一方为胜,若双方棋子数量一样,那么视为平局。3.3模块功能概述为了实现六子棋游戏的开发,通过流程图的分析,计划采用以下几个模块:初始化模块:初始化模块主要表现为一个函数,用来负责在开局的时候,将棋盘进行初始化操作,主要负责吧程序代码中各变量的值进行初始化。素材模块:素材模块主要对本系统所需用到的棋盘、棋子等各图片素材进行收集与制作,对本系统所需用到的音效进行编辑与插入。3)规则模块:规则模块是本系统的基础,用于判断能过落子的位置、能否吃子,双方输赢等情况。4)计时模块:计时模块主要用于对玩家的落子时间进行一个计量。5)双人模块:双人模块是本系统的主要运行方式,通过对玩家鼠标点击的位置,判断该坐标所处棋盘中对应位置,经过规则模块决定能否落子,如果能落,则锁定落子位置,并交换至对手走棋顺序。六子棋游戏的系统实现4.1登录界面的实现登录界面有两种选择,一是选择将本机作为服务器,另一种是选择将本机作为客户端。选择将本机作为客户端,需要输入本机的IP地址及服务器端口。IP地址可通过CMD中的IPCONFIG指令进行查询,服务器端口可点击选中服务器进行查询。具体如图4-1所示:4-1登录界面4.2游戏主界面的实现登录后,界面为两个3乘以3的方格棋盘。系统默认黑白双方棋子摆放方式均为“U形”,且黑子先行,白子后行。黑子于右边棋盘进行操作,白子于左边棋盘进行操作,右边会有我方和对方的提示。棋盘上显示用时,用于提醒轮到计时对应的一方下棋。具体如图4-2所示:4-2游戏主界面4.3游戏走棋环节的实现对于游戏规则,上文有很多的讲解,下面展开对存在的三种吃子情况进行演示,具体如图4-3、图4-4、图4-5所示:图4-3枪毙图4-3所示的即将进行枪毙操作,第四列第三颗棋子(白子)向左移动,即可将吃其左对角上的黑子。图4-4抬子图4-4即将进行的是抬子操作,第一列第二颗棋子(黑子)向右移动,即可吃其右边的白子。图4-5挑子图4-5所示的即将进行挑子操作,第二列的白子向上移动一步,即可将第二行两颗黑子均收入囊中。4.4输赢界面的实现在某一方最后只剩一个棋子或不剩棋子时,比赛结束,以剩下棋子较多的一方为胜。若最终双方都无法再吃对方棋子时,则以剩下棋子较多的一方为胜,若双方棋子数量一样,那么视为平局。一旦胜负结局已定,系统自动结束棋局,胜方显示“恭喜,您赢了,是否再来一局?”,输方显示“您输了,是否再来一局”。如一方无意,则点击退出结束游戏。具体如图4-4所示:4-4输赢界面第五章系统测试游戏测试主要是根据系统的前期研究需求分析,测试游戏发布前的一系列功能、性能和UI兼容性,为流畅的游戏打下坚实的基础,为产品的优化开发提供有效的条件和建议。首先,测试人员需要随时与开发人员沟通。测试人员不仅要了解游戏的开发原理,还要测试游戏的功能。其次,测试人员需要随时跟踪游戏,并及时将游戏的用户体验反馈告知开发者。开发人员可以根据需要修复错误。测试人员执行回归测试,这是重复的,重复的,并在任何时候发生。最后,测试仪必须小心和稳定。大量漏洞需要筛选并在筛选后提交。因此,未经测试的游戏会影响用户体验,甚至是整个游戏市场的发展。5.1测试方法此测试采用黑盒测试,将程序视为不透明的黑盒。黑盒测试不需要考虑程序处理的内部过程,只需要根据开题报告的设计要求进行相应的测试,并根据预期结果检查各功能模块是否能得到正确的信息。5.2测试过程(1)制定测试计划。在制定测试计划时,要充分考虑整个项目的开发时间和开发进度,以及一些人为因素和客观条件,使测试计划具有可行性。测试计划的内容主要有测试的内容、进度安排、测试所需的环境和条件等。(2)准备测试大纲。测试大纲是测试的基础,详细规定了测试中系统各功能或特性必须完成的基本测试项目和测试完成标准。(3)根据测试大纲制定测试用例。在设计测试用例时,可以利用上述测试用例和设计技术生成测试设计描述文档,主要包括测试项、输入数据、测试过程、预期输出结果等。(4)实施测试。测试的实现阶段由一系列测试周期组成。在每个测试周期中,测试人员和开发人员将根据预先准备好的测试大纲和准备好的测试用例对被测试的软件或设备进行完整的测试。(5)生成测试报告。试验结束后,应形成相应的试验报告,主要对试验进行描述,列出试验结论,指出缺陷和错误,并提出一些建议。5.3测试环境5.2.1硬件环境(1)CPU:1000M@1.80GHz(2)内存:8G(3)硬盘:90G(4)网卡:10/100Mbps以太网5.2.2软件环境(1)操作系统:Windows2007(2)系统开发平台:QT5.4功能测试本测试主要从游戏的功能性测试与性能测试进行了安排,首先是基础功能测试,主要测试内容为棋子基本的移动等,具体如下表5-1所示:表5-1基础功能测试用例表用例编号操作步骤预期结果测试结果1白子先行白子无法移动测试成功2黑子先行(向前一步)黑子向前一步测试成功3待黑子走完后白子向右一步白子向右一步测试成功4待白子走完后黑子向左一步黑子向左一步测试成功5点击退出游戏退出测试成功基础功能通过,顺利运行。接下来是进阶功能测试,主要测试内容为系统对于吃子和胜负的判断是否符合预期,具体如表5-2所示:表5-2进阶功能测试用例表用例编号操作步骤预期结果测试结果1黑子(左上)向右移动一步吃掉与黑子(左上)处于水平线的白子测试成功2白子(第三行第二颗)向上移动一步吃掉第二行两颗黑子测试成功3白子(第二行)向左移动一步吃掉黑子(第三行)测试成功4白子(第三行第二颗)向前移动一步白子向前一步,其他未发生变化。测试成功5黑棋被白棋吃完黑棋方输掉比赛,并弹出再来一局对话框测试成功5.5结果分析本系统开发的过程中,是一边开发一边测试,在测试的过程中所验证到的测试结果,与预期阶段基本相符,既解压又基本满足玩家的需求,增加了游戏的新鲜感和益智性。本次的性能测试采用人工边执行边分析,结果均与预期相符,并没有出现不相符情况。
第六章总结在完成毕业设计的过程中,我巩固了许多课堂上没有学透的知识,也学习到了许多课堂外的知识点,很好地拓展了知识面,有助于我在做任何事情上也保持独立思考,遇到困难积极寻求解决方法,不拖拉的良好习惯。虽然设计成果让我欣慰,但是设计过程并不是一帆风顺。首先,我需要做相应的背景分析、市场调研、需求分析,然后围绕研究成果进行设计和开发。虽然游戏的功能并不复杂,但开发者仍然需要具备良好的编程能力和严谨的思维逻辑能力,保证游戏的各个环节正常运行。由于对QtDesigner的使用,并没有十分熟悉,在实际的设计开发过程中会遇到
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 宁波市北仑区民政事务中心招聘笔试真题及答案
- 中西医结合诊疗乳头溢液专家共识总结完整版
- 2026年小学二年级语文第二学期期末考试卷及答案(六)
- 2028年武术教练师徒传承协议二篇
- 医学影像AI质控与合规认证
- 幼儿园毕业离园欢送会
- 译林版英语三年级下册Project 2 My nature park
- 阅读遇见更好的自己作文
- 历史高考试题试卷和答案
- 疼痛科工作制度岗位职责与诊疗范围诊疗规范标准2篇
- 2025中煤航测遥感集团有限公司招聘58人笔试历年参考题库附带答案详解
- 2026浙江杭州市融资担保集团有限公司春季招聘5人笔试参考试题及答案解析
- 2026温州瓯海全域空间设计咨询有限公司面向社会招聘2人备考题库及答案详解(新)
- 2026福建南平武夷发展集团有限公司招聘应届毕业生24人备考题库及答案详解(全优)
- 2026贵阳市创业投资有限公司(第一批)对外招聘3人备考题库及一套完整答案详解
- 陕西演艺集团招聘笔试题库2026
- 2024版慢性鼻窦炎诊断和治疗指南课件
- 招远社区工作者招考真题及答案2025
- 卷积码码 课件
- DBJ50∕T-280-2018 建筑工程信息模型设计标准
- XXXX年调资工资软件操作说明
评论
0/150
提交评论