You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
1 week ago | |
|---|---|---|
| doc | 1 week ago | |
| log | 1 week ago | |
| model | 1 week ago | |
| src | 1 week ago | |
| README.md | 1 week ago | |
README.md
java_game_guessnum 2048小游戏 —
快速开始(组员拉取项目后)
-
查看需求模型 cd model 用 Visio / draw.io 打开 软件需求模型.vsd 共3页:用例图、活动图、类图
-
查看需求文档 cd doc 用 Word / WPS 打开 软件需求构思及描述.docx
-
查看工作日志 cd log 每位组员5次日志文件,证明参与
-
编译运行游戏源码(可选) cd src javac Game2048.java java Game2048
依赖项:Java JDK 8+(仅运行源码时需要)、Visio/draw.io(查看模型)、Word/WPS(查看文档) 注意:本作业主要为建模文档,无需运行代码即可评审。源码仅作为实现参考。
游戏功能(与源码对应)
| 功能 | 源码实现位置 | 说明 |
|---|---|---|
| 棋盘初始化 | initGame() |
清空棋盘,生成两个初始数字 |
| 随机生成数字 | generateRandomCell() |
90%概率生成2,10%概率生成4 |
| 左移合并 | moveLeft() |
核心合并算法,同时累加分数 |
| 右移合并 | moveRight() |
通过反转+左移实现 |
| 上移合并 | moveUp() |
通过旋转+左移实现 |
| 下移合并 | moveDown() |
通过旋转+左移实现 |
| 胜利判定 | isWin() |
检查是否有2048方块 |
| 失败判定 | isGameOver() |
检查是否无空位且无可合并 |
| 界面绘制 | paint() |
Swing绘制棋盘、分数、颜色块 |
| 键盘监听 | KeyAdapter |
监听上下左右方向键 |
建模内容说明
用例模型(第1页)
- 参与者:玩家
- 用例数:10个
- 开始新游戏、移动数字方块、撤销上一步、保存游戏进度、恢复历史进度
- 查看当前分数、查看最高分记录、设置游戏难度、重置游戏、退出游戏
- 关系:include(移动 → 查看分数)、extend(开始游戏 → 恢复进度)
活动图(第2页) 描述游戏主流程:
进入游戏界面 → 选择开始/恢复 → 游戏循环(移动/撤销/保存/重置/退出)→ 胜利/失败判断
类图(第3页)
| 类名 | 职责 |
|---|---|
| GameBoard | 棋盘数据 + 移动合并逻辑 |
| GameController | 撤销、保存、加载、重置 |
| Player | 游戏记录查询 |
当前源码将所有逻辑集中在 Game2048 类中,类图展示的是理想设计结构,用于需求分析阶段。
使用工具
| 任务 | 推荐工具 | 替代方案 |
|---|---|---|
| UML建模 | PlantUML / draw.io | Visio |
| 文档编写 | Microsoft Word | WPS / 腾讯文档 |
| 版本管理 | Git + Gitee/GitHub | 网页端直接上传 |
备注
- 所有建模内容符合 UML 2.x 规范
- 需求模型与分析模型完整覆盖游戏核心功能
- 源码可独立编译运行,验证模型正确性
- 本作业已按要求提交至学习通 + 项目托管平台