基于移动平台的九宫格数独游戏设计与实现毕业论文
2020-02-16 21:09:02
摘 要
由于工作压力及生活节奏的变化,近些年来人们对游戏的需求越来越大,其中休闲益智类的游戏占据了很大的一部分,人们可以通过休闲类的游戏来放松自己,度过休闲的时光,同时带来快乐。九宫格数独游戏是一款益智类休闲游戏,所以不但可以休闲带来快乐,还可以作为益智类的游戏锻炼自己的推理及数学能力,因此受到很多人的欢迎。目前市场上常见的九宫格数独游戏都是单人模式,所以本次实现支持多人协同工作的数独游戏是很少见的,应该会受到不少玩家的欢迎。
本系统后台的开发工具为Eclipse 2018 Photon(4.8)和tomcat 9,安卓端的开发工具为Android studio3.2,数据库采用MySQL,后台通过Jdbc与数据库相连接。
论文中详细探讨和研究了如何随机生成不同难度且答案唯一的初始棋盘,如何根据关卡数生成固定棋盘,如何利用WebSocket实现多人协同操作,以及一些辅助功能的实现,如背景音乐的设置,用户信息的维护等。
最终实现的九宫格数独游戏在用户注册登录后可以进行游戏人数的选择,如单人模式,双人模式和三人模式,以及游戏难度的选择如简单,一般和较难3种模式,还可以进行棋盘初始化的方式选择,如固定棋盘和随机棋盘两种方式,选择完毕即可开始游戏。经过测试,该系统基本完成玩家的需求。
本系统的特色在于除了单人模式外还支持多人协同工作,且可以选择棋盘生成方式(固定和随机)。
关键词:九宫格数独游戏;挖洞法;WebSocket协议;
Abstract
Due to changes in work stress and life rhythm, people#39;s demand for games has increased in recent years. Among them, casual puzzle games occupy a large part, and people can relax themselves through casual games and spend leisure. Time, while bringing happiness. Jiugongge Sudoku game is a puzzle casual game, so not only can bring happiness to leisure, but also can be used as a puzzle game to exercise your own reasoning and mathematics ability, so it is welcomed by many people. Currently, the nine-square game Sudoku games that are common on the market are single-player mode. Therefore, this time my project realizes Sudoku games that support multi-person collaboration. It is rare and should be welcomed by many players.
The development tool behind the system is Eclipse 2018 Photon(4.8), the development tool for Android is Android studio3.2, the database is MySQL, and the background is connected to the database through Jdbc.
The thesis discusses and studies in detail how to randomly generate initial chessboards with different difficulty and unique answers, how to generate fixed chessboards according to the number of levels, how to use WebSocket to achieve multi-person collaborative operation, and the realization of some auxiliary functions. Such as the setting of background music, maintenance of user information, and the like.
The final realization of the Jiugongge Sudoku game can be used to select the number of players after the user logs in, such as single player mode, double mode and three-person mode, as well as the difficulty of the game, such as simple, general and difficult 3 modes, can also be carried out The choice of the board initialization method, such as fixed board and random board, can be started after the selection is completed. After testing, the system basically completes the player#39;s needs.
The system features multi-person collaboration in addition to the single-player mode, and can choose the board generation mode (fixed and random).
Key Words:Jiugongge Sudoku game; Tunneling method;WebSocket
目录
第1章 绪论 1
1.1 课题研究背景及意义 1
1.2 任务说明 2
第2章 系统需求分析 3
2.1 用户需求 3
2.2 系统中的用例及用例文档 3
2.2.1 用例 3
2.2.2 系统用例模型图 4
2.2.3 用例文档 4
第3章 系统设计 13
3.1 功能模块设计 13
3.1.1总体结构 13
3.1.2功能说明 14
3.2 数据库设计 15
3.2.1 数据库需求分析 15
3.2.2 数据库概念模型设计 15
3.2.3 数据库物理模型设计 15
3.3 界面设计 16
3.3.1 登录界面 16
3.3.2 找回密码界面 17
3.3.3 注册界面 17
3.3.4 游戏主界面 18
3.3.5 设置界面 19
3.3.5 修改密码界面 20
3.3.6 历史记录界面 20
3.3.7 选择关卡界面 21
3.3.8 游戏界面 22
第4章 系统实现 23
4.1 技术简介 23
4.1.1 HttpClient 23
4.1.2 Servlet 23
4.1.3 JSON 24
4.1.4 WebSocket 24
4.1.5 JDBC 25
4.1.6 MediaPlayer 25
4.2 层次结构的实现 26
4.2.1 安卓端 26
4.2.2 服务器端 26
4.3 登录模块 26
4.4 注册模块 28
4.5 游戏主界面模块 30
4.6 历史记录模块 32
4.7 游戏界面模块 33
第5章 关键技术与算法方案 38
5.1 WebSocket协议的使用 38
5.1.1 WebSocket原理介绍 38
5.1.2 WebSocket不同版本的选择 38
5.1.3 安卓端WebSocket的实现 39
5.1.4 服务器端WebSocket的实现 40
5.2 挖洞法生成随机布局 43
5.2.1 生成终盘 43
5.2.2 挖洞法生成初始化数据 45
5.3 游戏界面的绘制 48
5.3.1 原理概述 48
5.3.2 Sudoku类的实现 48
5.3.2 SudokuView类的实现 51
第6章 结束语 56
参考文献 57
致谢 58
绪论
本章主要是对课题研究做一个总体的说明,包括课题研究的背景及意义和任务说明两大部分。通过这两部分的说明可以为论文的展开打好基础,使得本系统的研究意义及作用变得清楚明白,确定了论文研究的内容。
课题研究背景及意义
数独游戏是一种数学及逻辑游戏。游戏规则是根据9times;9共81个格子的盘面上的已知数字,推理出剩余空格的数字,并使得每行、每列、每宫(3*3)内的数字均含1-9且不重复。由于其既能满足人们娱乐的需求,又能锻炼人们的数学及推理能力,所以在全世界广受欢迎,在西方的一些影片中时常可以看到人们独坐在家中玩数字游戏。
其解题方法也有很多种,其中区块摒除法、数组、二链列较为常用,基本能解决大部分数独题目。随着越来越多的人玩数独游戏,花样也越来越多,可以在一些游戏网站上看到提示数显示成特殊图形,使得整个界面变得美观,但同时由于其设计难度较大,所以在普通的设计中并不常见。界面的设计方面还可以倒叙设计,即将写好的逐步扣掉已达到想要的图案。
如今市场上各种游戏层出不穷,经典的游戏如数独游戏仍然有许多人玩,且随着人们基本人手一个手机,原先的用纸玩的方式不再那么便利,所以在移动终端端开发一些好玩的、有趣的游戏十分有必要。经过在不同款的手机上搜索,数独游戏上架量很少,且质量总有些不满意,所以开发一款数独游戏可能会受到不少人的欢迎。
基于移动平台的九宫格数独游戏开发与实现旨在开发一款功能强大、操作简单、用户体验良好的数独游戏应用,并支持协同操作,使得玩家们随时随地都可以享受数独带来的乐趣。所谓协同操作就是多位用户可以合作完成填写数字,用户可以根据需要选择玩家人数,这样提高了游戏的趣味性与多样性。此外用户可根据自身需求选择游戏的难度,包括初级、中级和高级三种。且用户的数据会保存,以便下次再次使用。为了提高用户的体验效果还为用户提供了错值提示和背景音乐。
数独游戏既能满足人们娱乐的需求,又能锻炼人们的数学及推理能力。此基于移动平台的九宫格数独游戏跟常见的数独游戏相比增加了协同操作,充分利用了网络游戏的特点,操作简单便于用户快速上手掌握,提高用户体验。
1.2 任务说明
本系统是一款基于Android端的且可支持多人协同工作的数独游戏,最终的系统可分为游戏设置模块和用户信息管理模块。具体功能包括: 游戏难度选择(初级、中级、高级),玩家人数选择,游戏棋盘生成方式选择,游戏中填写数字及错值提示更改、删除游戏数字和提示,游戏过程信息的记录(游戏时间、难度、是否完成等),多人模式下PASS功能与倒计时功能,游戏背景音乐的设置,玩家数据保存与查询,用户密码的更改,初始用户的注册。
用户在登录成功后,在主界面可以选择开始游戏或者个人信息的修改,在选择开始游戏后就需要进行难度及游戏人数的选择,进入游戏后,相关的游戏提示根据用户是否需要进行选择后才提示,背景音乐的更换也在该模块完成;在个人信息模块,用户可修改密码,也可对历史数据进行查询。
系统需求分析
本章是对用户的需求进行分析,根据分析情况得到一个个的功能,这些功能对应着不同的用例,用ROSE软件做出这些用例及用例模型图,为更好地说明及理解用例,还需要做出用例文档。本章为接下来的系统设计打下了良好的基础,了解清楚了用户的需求才便于根据功能划分模块,才能更好的设计出满足用户需求的系统,所以本章是设计系统的基石。
2.1 用户需求
该九宫格数独游戏面向玩家,对于玩家来说功能需求如下:注册游戏账号,登录游戏,忘记密码,记住密码,密码修改,昵称修改,切换用户,选择游戏人数,选择游戏难度,选择游戏布局初始化方式,选择游戏关卡,设置游戏背景音乐,错值提示,PASS功能,重玩本局,填写及删除数字,提示,查看游戏历史记录等功能。
2.2 系统中的用例及用例文档
2.2.1 用例
根据用户需求划分成一个个的功能,从而可以用ROSE工具得到用例,如图2.1所示。
图2.1 用例
2.2.2 系统用例模型图
根据上述的用例以及功能之间的逻辑关系可以得到系统的用例图,如图2.2所示,需要注意的是用例之间的依赖关系。
图2.2 数独游戏用例图
2.2.3 用例文档
注册账号的用例文档如表2.1所示。
表2.1 注册账号用例文档
属性 |
值 |
用例 |
注册账号 |
描述 |
该用例允许用户注册游戏账号,用户输入手机号,昵称,密码 |
参与者 |
玩家 |
前提条件 |
玩家打开游戏软件,并且没有账号,点击注册账号用例开始 |
主流 |
玩家注册账号,登录游戏系统,进入游戏系统主界面,开始游戏 |
其他流 |
手机号未接收到信息,注册失败,重新尝试发送验证码 |
后置条件 |
若用例成功,玩家则登录入游戏系统,进入主界面,选择下一步操作 |
登录的用例文档如表2.2所示。
表2.2 登录用例文档
属性 |
值 |
用例 |
登录 |
描述 |
玩家在登录界面输入账号及密码,选择登录,系统将根据用户信息判断账号及密码的正确性,以此确定是否登陆成功 |
参与者 |
玩家 |
前提条件 |
玩家打开游戏软件,输入账号密码,点击登录用例开始 |
主流 |
登陆成功,进入游戏主界面 |
其他流 |
登陆失败,向玩家提示输入错误信息 |
后置条件 |
若登录成功,玩家进入游戏主界面 |
修改密码的用例文档如表2.3所示。
表2.3 修改密码用例文档
属性 |
值 |
用例 |
修改密码 |
描述 |
玩家可更改当前密码,重新设置新的密码 |
参与者 |
玩家 |
前提条件 |
玩家需要修改密码的功能,选择修改密码功能进行修改,用例开始 |
主流 |
密码修改成功,提示玩家相关信息,且下一次登录需要用新密码 |
其他流 |
密码修改失败,可能是当前密码验证出现错误,向用户提示相关错误信息 |
后置条件 |
密码修改成功,下次登陆需要新密码 |
忘记密码的用例文档如表2.4所示。
表2.4 忘记密码用例文档
属性 |
值 |
用例 |
忘记密码 |
描述 以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。 相关图片展示:
|