基于移动平台的九宫格数独游戏设计与实现开题报告
2020-02-10 23:14:34
1. 研究目的与意义(文献综述)
1、目的及意义(含国内外的研究现状分析) 1.1、题目:基于移动平台的九宫格数独游戏设计与实现 1.2、背景资料: 数独游戏起源于瑞士,是一种数学及逻辑游戏。数独游戏的雏形是由美国的一位退休建筑师格昂斯根据欧拉的拉丁方阵得来的,后经过日本学者及新西兰游客进一步传播,得以在全世界流行起来。游戏规则是根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个粗线宫(3*3)内的数字均含1-9,不重复。由于其既能满足人们娱乐的需求,又能锻炼人们的数学及推理能力,所以在全世界广受欢迎,在西方的一些影片中时常可以看到人们独坐在家中玩数字游戏。 其解题方法也有很多种,基础解法包括排除法和唯一余数法;进阶的解法包括区块摒除法、数组、二链列、唯一矩形、全双值格致死解法、同数链、异数链及其他数链的高级技巧等等。其中区块摒除法、数组、二链列较为常用,基本能解决大部分数独题目。随着越来越多的人玩数独游戏,花样也越来越多,可以在一些游戏网站上看到提示数显示成特殊图形,使得整个界面变得美观,但同时由于其设计难度较大,所以在普通的设计中并不常见。界面的设计方面还可以倒叙设计,即将写好的逐步扣掉已达到想要的图案。
1.3、目的及意义: 目的: 如今市场上各种游戏层出不穷,经典的游戏如数独游戏仍然有许多人玩,且随着人们基本人手一个手机,原先的用纸玩的方式不再那么便利,所以在移动终端端开发一些好玩的、有趣的游戏十分有必要。经过在不同款的手机上搜索,数独游戏上架量很少,且质量总有些不满意,所以开发一款数独游戏可能会受到不少人的欢迎。 基于移动平台的九宫格数独游戏开发与实现旨在开发一款功能强大、操作简单、用户体验良好的数独游戏应用,并支持协同操作,使得玩家们随时随地都可以享受数独带来的乐趣。所谓协同操作就是多位用户可以合作完成填写数字,用户可以根据需要选择玩家人数,这样提高了游戏的趣味性与多样性。此外用户可根据自身需求选择游戏的难度,包括初级、中级,高级三种。且用户的数据会保存,以便下次再次使用。为了提高用户的体验效果还为用户提供了错值提示和背景音乐。 意义:数独游戏既能满足人们娱乐的需求,又能锻炼人们的数学及推理能力。此基于移动平台的九宫格数独游戏跟常见的数独游戏相比增加了协同操作,充分利用了网络游戏的特点,操作简单便于用户快速上手掌握,提高用户体验。
1.4、国内外研究现状分析: 经过查阅相关资料,国外的数独游戏要比国内流行度更高,且有专属的数独论坛。目前数独游戏有许多版本,比如标准版和变形数独,种类多样。比较知名的数独软件有hodoku,SudokuExplainer,SudoCue,且均免费较为权威。国内的数独游戏软件还不够丰富,而且还没有看到能够协同操作的数独软件,因此,本课题若能在单人操作基础上能新增出协同操作功能,将会吸引较多用户,美观的界面和易操作的特性也会提高用户的体验。
|
2. 研究的基本内容与方案
2、基本内容和技术方案 2.1、基本内容: 2.1.1、总体结构 系统的具体功能包括: 游戏难度选择(初级、中级、高级),玩家人数选择,游戏中填写数字及错值提示更改、删除游戏数字和提示,游戏过程信息的记录(游戏时间、难度、是否完成等),游戏背景音乐的设置,玩家数据保存与查询,用户密码的更改,初始用户的注册。用户在登录成功后,在主界面可以选择开始游戏或者个人信息的修改,在选择开始游戏后就需要进行难度及游戏人数的选择,进入游戏后,相关的游戏提示根据用户是否需要进行选择后才提示,背景音乐的更换也在该模块完成;在个人信息模块,用户可修改密码,也可对历史数据进行查询。 从总体业务来看,系统主要分为两大模块,分别为:游戏设置模块,个人设置模块。 系统功能模块图如图1所示。
图1 系统功能模块图 2.1.2、功能说明 游戏设置模块包括四部分,分别是游戏人数选择、游戏难易程度选择、填数及删除的提示、背景音乐的选择。用户点击开始游戏后将会进行以上初始选择,其中提示和背景音乐可根据用户需求进行选择,背景音乐可以设置默认播放。这些设置可提高用户的游戏体验,以及简化操作。 个人设置模块包括两部分,分别是用户密码更改及用户历史数据的查询,历史数据包括游戏时间、难度、是否完成等。根据这一块的功能用户可以看到以往数据,当然这些数据可以选择删除,保留需要的数据以满足用户需求,密码的更改部分需要涉及到验证码更改。 根据以上内容的描述,大致的系统流程图如图2所示。
图2 系统流程图
2.2、技术方案: 2.2.1、设计方法 设计的方法大致可为:理论学习、交流讨论、编码调试、测试优化等。 1、理论学习中主要为学习Android技术,熟悉Android平台,能熟练的运用该技术进行项目开发。其次则是关于毕业设计选题的相关内容学习,了解设计该系统的主要目的和系统的功能需求; 2、交流讨论:和老师同学等进行交流讨论,解决自己在理论学习中或编码中所遇到的问题; 3、编码调试:在对系统进行详细的总体设计后开始编码工作并能够根据设计方案实现该系统; 4、测试优化:在实现系统后对其进行测试,针对在测试中碰到的问题进行调试及优化,确保系统的可靠性。
2.2.2、技术路线 该系统的使用的主要技术包括基于Java语言的Android应用开发和MySQL作为后台数据库。 1、Android开发环境:Android Studio。安装Java开发环境,安装和配置JDK,下载安装Android Studio,安装和配置Android SDK插件,建立Android虚拟设备或安装真机测试环境。 (1)客户端实现:客户端主要在Android Studio下开发,主界面activity可用多个fragment组合在一起来创建一个多界面,不同界面之间互不影响,用户可以通过点击不同按钮来切换页面,以实现界面的切换。 (2)服务器实现:服务器用java编程语言开发实现,使用WebSocket协议来达到协同工作的目的。首先要接受客户端发来的连接,然后对客户端进行回应连接成功,然后客户端就可以将消息打包发给服务端(常以json格式),然后服务器就可以根据逻辑发给连接的用户了,实现协同操作。 (3)通信实现:采用WebSocket协议,是 HTML5 一种新的协议。它实现了浏览器与服务器全双工通信,能更好的节省服务器资源和带宽并达到实时通讯,它建立在 TCP 之上,同 HTTP 一样通过 TCP 来传输数据,但是它和 HTTP 最大不同是:WebSocket 是一种双向通信协议,在建立连接后,WebSocket 服务器和Browser/Client Agent 都能主动的向对方发送或接收数据,就像 Socket 一样;WebSocket 需要类似 TCP 的客户端和服务器端通过握手连接,连接成功后才能相互通信。 webSocket流程: a、客户端开始连接-------gt;服务端收到连接(保存客户端ip)---------gt;服务端向客户端发送连接成功消息 b、客户端发送消息(内容和服务端定义好,一般是json格式)----------服务端收到消息,根据想要的逻辑,决定是否推送给所有连接上的客户端 c、客户端收到推送消息,更新UI界面 通过以上流程就可以达到一个用户操作后其他用户能够实时的更新状态,从而实现协同操作。WebSocket的框架有AndroidAsyn,autobahn,java-webSocket,Netty。 (4)重点难点及解决方案 首先是数独游戏的算法问题,网上有很多设计及解决的算法,所以打算查阅已有资料,然后学习掌握,适当利用,以得到合适的算法。 再者是协同问题:玩家可以实现协同操作,这是本软件的一大特点,但同时由于自己之前没有过相关的学习,所以需要上网查一些资料,现在只是初步的了解了一下WebSocket协议,知道了相关的流程,但是具体的使用还需要进一步的学习,里面相关函数的意义也需要掌握,可以去参考已有的实例来进一步的学习。 关于多人合作完成也有一个问题就是如何组成队伍,通过已添加好友还是直接在线匹配,这是一个需要后续考虑的问题,由于时间及难度限制,方式可能不会有太多,之前也没接触过所以也需要学习,但网上有不少相关资料,可以上网查询,如果是好友组队玩游戏的话,那么在功能模块就需要新增好友列表了,相应的添加好友功能也需要做,所以难度并不小,需要认真学习。 数据库的设计也是一个重点,需要清楚需要什么样的输入及输出数据,所以对整个项目的功能逻辑需要有一个整体的把握,数据库函数写的好坏直接影响项目的效率,所以是重点也是难点。数据库是基石,通过它各个模块才能连接起来,各个模块之间参数的传递也需要有数据库来进一步确定,因为数据库是以什么样的形式传递数据是关键,或者以一个类的对象又或者是某个数据类型如整形等。实现的方法要用到之前学习过的数据库的设计流程,过程可能会麻烦一些,但是以后想要修改会容易,因为逻辑清晰,如果只是想到哪写到哪就会造成后期需要修改时一团乱麻的情况,所以需要根据表及逻辑关系来确定返回值。 后面就是一些细节问题,比如说界面的设计,每一个功能如何分布,功能之间的逻辑关系都需要认真考虑,这一块根据之前的经验主要麻烦在布局上,看似很简单,其实一个个的控件的使用都很多,而且界面的设计细节方面很需要耐心和审美。 2、使用MySQL作为后台数据库。与其他的大型数据库例如Oracle、IBM DB2、MS SQL等相比,MySQL自有它的不足之处,如规模小、功能有限等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人用户和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源代码软件,因此可以大大降低总体拥有成本。 根据以前的课程学习可分为四个阶段进行数据库设计,分别为: 需求分析阶段,常用自顶向下,此阶段主要用于理清用户需求,确定具体功能,是整个设计过程的基础,也是最困难,最耗时的一步,需求分析是否做得充分和准确,决定了在其上构建数据库大厦的速度与质量。需求分析做的不好,会导致整个数据库设计返工重做; 概念设计阶段,常用自底向上,概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合,归纳与抽象,形成了一个独立于具体DBMS的概念模型; 逻辑设计阶段(E-R图),是将概念结构转换为某个DBMS所支持的数据模型,并将进行优化。首先将E-R图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式,然后根据用户处理的要求、安全性的考虑,在基本表的基础上再建立必要的视图(View),形成数据的外模式; 物理设计阶段,物理设计是为逻辑数据结构模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法),根据DBMS特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式。
2.2.3、预期的研究成果 1、开发一个基于移动平台的九宫格数独游戏系统,并支持协同操作,用户可以进行数据的保存,个人信息的修改,背景音乐的选择等。 2、在九宫格数独游戏系统的学习研究过程中,完成相应的学士毕业论文。 |
3. 研究计划与安排
3、进度安排
(1)2019/2/20-2019/3/5(第1周~第2周):修改完善开题报告,网上提交开题报告,修改完善英文翻译,周记;
(2)2019/3/6-2019/3/19(第3周~第4周):书写系统总体设计方案,英文翻译网上提交,提交阶段性报告;
4. 参考文献(12篇以上)
附录:参考文献
[1] 裘雪红. 计算机专业毕业设计宝典. 西安:西安电子科技大学出版社,2008.
[2] retor meier著. 王鹏杰,霍建同译.android高级编程[m]. 北京:清华大学出版社,2010.6
最新文档
- 华北地区夏季降水多年、少年近地层水汽场及风场分布特征开题报告
- 天山地区典型流域降雪分布研究文献综述
- 2016年台风狮子山路径突变原因的初步分析开题报告
- 北京和寿县地区边界层急流观测与模型的对比文献综述
- 具有双Kelvin波结构MJO活动的再分析开题报告
- 基于单片机的温控风扇设计文献综述
- 1961-2015年江苏省气候资源的时空分布规律开题报告
- 智能搬运机器人文献综述
- 基于类型的电影推荐系统文献综述
- Bi6S2O15的合成及其降解有机污染的研究开题报告
- 不确定时滞奇异摄动系统的鲁棒控制器设计文献综述
- 小型双模SIW滤波器的研究与设计开题报告
- 我国绿色出行政策执行研究——以南京市为例文献综述
- 试论李碧华小说中的爱情悲剧开题报告
- 基于FPGA的电子相册设计文献综述