5 Star 2 Fork 2

echo_kai / WeirdDot

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

WeirdDot

项目需求规格说明书

1. 引言

1.1. 编写目的

本文档的目的是详细地介绍WeirdDot所包含的需求, 以便客户能够确认产品的确切需求以及开发人员能够根据需求设计编码,以下叙述将结合文字描述、数据流图、ER图等来描述WeirdDot的功能、性能、用户界面、运行环境、外部接口以及针对用户操作给出的各种响应。本文档的预期读者有客户、项目经理、开发人员以及跟该项目相关的其他竞争人员。

1.2. 范围

本文档规定了应用程序的功能规范需求。

2. 总体概述

2.1. 软件概述

2.1.1. 项目介绍

WeirdDot是一款基于JavaScript实现的小游戏合集,该游戏使用简约统一的画风对几款小游戏进行整合和改编,该游戏合集适合比较喜欢简约风格游戏并且喜欢休闲类游戏的用户。 本应用程序功能包括选择游戏、开始游戏、返回上一步、提示下一步、回到主界面。具有以下特点:

  • 确保应用程序具有良好的系统性能,友好的用户界面。
  • 较高的处理效率,便于使用和维护
  • 采用成熟技术开发,使系统具有较高的技术水平和较长的生命周期

2.2. 软件功能

2.2.1. 结构图

结构图.png

2.2.2. 功能模块图

功能模块图.png

2.3. 角色

用例图.png

3. 功能需求

3.1. 主界面模块

  • 简介 提供了用户选择具体小游戏游戏的功能
  • 功能列表
    • 选择游戏
3.1.1. 选择游戏

用户需要选择一个游戏或者更换游戏时可以进行此操作。

3.2. 游戏模块

  • 简介 提供了用户在进行游戏过程中可以进行的各种操作
  • 功能列表
    • 开始游戏
    • 执行游戏动作
    • 返回主界面
    • 返回上一步
3.2.1. 开始游戏

用户进入游戏后需要开始游戏以及重新开始下一轮可以使用此操作

3.2.2. 执行游戏动作

用户在游戏过程中需要进行包括落子或者滑动时会执行此操作

3.2.3. 返回主界面

用户在游戏过程中期望回到主菜单选择另一个游戏时可以执行此操作

3.2.4. 返回上一步

用户在游戏过程中期望回到上一步操作是可以执行此操作

4. 性能需求

本项目性能需求有:

  • 浏览器的需求
  • 网络环境的需求
  • 应用程序运行时间的需求

5. 接口需求

5.1. 用户接口

交互界面采用浏览器显示,适配性较高。

5.2. 软件接口

本应用程序可运行在主流浏览器上。

5.3. 通讯接口

Internet接入协议:TCP/IP、HTTP

6. 总体设计约束

6.1 标准符合性

本应用程序的开发在源代码上遵循JavaScript编程规范及其开发标准

7.软件质量特性

7.1. 可靠性

  • 容错性:用户不合理的操作,不会造成应用程序不可用或应用程序崩溃(会)。客户端在不同 的操作系统下或不同的硬件配置下,都能正常工作,也不会因为用户在系统装了不同的软件,造 成本产品的工作不正常。.
  • 可掌性:提交给用户的最终产品在6个月的运行期间,不能有致命错误,严重错误不超过5次, 一般错误不超过15次。
  • 可恢复性:当应用程序出现故障或机器硬件出现断电等情况,应用程序应该能自动恢复数据和 安全性等方面的功能。

7.2. 易用性

  • 易懂性:用户能够容易的理解该应用程序的功能及其适用性。
  • 易学性:该应用程序简单易学,容易.上手。
  • 易操作性:本应用程序除了鼠标操作外,还可通过快捷键进行相关的操作。

7.3. 可维护性

本应用程序未实现的功能正在进行完善中,另版本可进行升级。

7.4. 可测试性

产品的单元模块和最终产品的功能都是可验证和可测试的。

7.5. 可用性

本应用程序可用性强,只要能够使用浏览器访问相应页面即可使用。

8. 团队分工

  • 何凯:需求分析文档1.0
  • 何凯:主界面开发
  • 何凯、yanghai:围住神经猫游戏开发
  • 滕昶、陆春浩:五子棋游戏开发
  • 吴文龙、廖宇阳:2048游戏开发

软件设计说明书

1. 围住神经猫

1.1. 流程图

流程图.png

1.2. 类图

类图.png

1.3. 时序图

时序图.png

1.4. UI图

UI图.png

2. 五子棋

2.1 时序图

2.2 UI图

  • 游戏时的ui
  • 结束画面

2.3 补充说明

2.3.1 初始化界面
  • GameInit():生成棋盘,初始化数据结构
2.3.2 下棋
  • 调用NextStep(location):
    位置有两个参数, 通过获取光标位置获得, 下一步的横轴和纵轴。实现思路如下:
  • 调用anyWin():判断新下的一点在四个方向上是否有任一方向形成五连子,来判断是否达成获胜条件,如果任意一方获胜,则结束游戏
  • 调用aiNextStep(), 生成ai的下一步
  • 调用anyWin(),判断是否达成获胜条件,如果任意一方获胜,则结束游戏
  • 将玩家和ai上一步的位置存入数组lastStep[]
  • 如果玩家按下悔棋按钮,则调用withDraw()撤回上一步的棋子
  • 调用 resReturn返回下棋结果
    重复以上步骤,直至游戏结束
2.3.3 ai算法
  • 调用评分算法assese(), 判断当前局势。对每一个可下的点进行评估,选出评分最高的点,作为下一步的落点。
2.3.4 重新开始
  • 调用refreshGame():
    设置棋盘为空,lastStep[]为空,等待用户下第一步
2.3.5 结束游戏
  • 调用refreshGame()
  • 调用showResult():显示结束界面,展示胜者

3. 2048

3.1 时序图

时序图

3.1.1 初始化界面

调用gameInit():给最大分值和游戏分值绑定数据变量,刷新颜色,随机生成两个新元素。

3.1.2 元素移动

调用move(direction): 移动有四个方向:上、下、左、右。实现思路如下: 如果触发向左移动   遍历所有非空元素     调用itemMove(currentItem, direction):     如果当前元素在第一个位置       不动     如果当前元素不在第一个位置       如果当前元素左侧是空元素
        向左移动       如果当前元素左侧是非空元素
        如果左侧元素和当前元素的内容不同
          不动         如果左侧元素和当前元素的内容相同
          向左合并,增加合并后的分值*10   根据是否有元素移动来决定是否产生新元素。 其余方向以此类推。

3.1.3 刷新界面

调用refreshGame(): 所有元素设为空元素,游戏分数清零,随机生成两个新元素。

3.1.4 结束游戏

调用isGameOver(): 获取所有非空元素,如果所有元素都非空,循环遍历所有元素,如果存在元素四周有元素和该元素数值相同,则游戏未结束;如果所有元素四周的元素和该元素数值都不相同,则游戏结束,弹出游戏结束窗口,窗口可以选择“关闭”或“再玩一次”。

3.2 UI图

ui_1 ui_2

空文件

简介

大型软件工程课程设计 展开 收起
JavaScript 等 3 种语言
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
JavaScript
1
https://gitee.com/echo-kai/weird-dot.git
git@gitee.com:echo-kai/weird-dot.git
echo-kai
weird-dot
WeirdDot
master

搜索帮助