第 8 周:2048 蓝湖设计图还原与验收
本周目标
本周完成后,应能够:
- 使用第 7 周完成的计分与重新开始功能,完成完整游戏流程
- 使用本地存储保存并恢复最高分
- 根据提供的 2048 蓝湖设计图完成游戏界面还原
- 编写稳定、不因数字和状态变化而错位的游戏界面
- 为核心规则设计并执行明确的测试用例
- 根据测试结果定位并修复逻辑问题
- 整理代码结构、Git 提交和 GitHub 项目说明
- 独立讲解 2048 的状态、移动算法和渲染流程
需要掌握的知识点
蓝湖设计图分析
- 确认设计图对应的页面尺寸和目标浏览器宽度
- 读取棋盘、方块、间距、圆角、颜色、字体和阴影标注
- 导出设计图中的图片、图标和字体等资源
- 划分标题区、分数区、操作区、棋盘和状态提示区域
- 识别默认、胜利、失败和重新开始等界面状态
- 使用对比截图记录并修复视觉偏差
分数与状态
- 仅在数字合并时增加当前分数
- 每次合并增加新方块对应的数值
- 区分进行中、胜利和失败状态
- 复用第 6 周的
hasTarget()进行胜利判断 - 复用第 6 周的
isGameOver()进行失败判断 - 避免游戏结束后继续修改状态
游戏生命周期
- 初始化棋盘和两个随机数字
- 处理一次用户输入和完整状态更新
- 重新开始时清空棋盘、当前分数和提示状态
- 在合适时机保留或更新最高分
- 处理连续点击重新开始等重复操作
本地存储
localStorage的读取、写入和删除- 字符串与数字之间的转换
- 首次访问时不存在存储值的处理
- 存储值异常时使用合理默认值
- 刷新页面后恢复最高分
界面稳定性
- 棋盘和方块尺寸、间距、颜色及圆角符合蓝湖标注
- 不同数字的字体和背景色符合蓝湖设计
- 当前分数、最高分、状态提示和按钮布局符合设计图
- 文本不会遮挡棋盘或操作区域
- 在设计图对应尺寸下无明显错位或溢出
- 控制台无错误,图片和样式资源无加载失败
测试与调试
- 为移动函数准备确定的棋盘输入和预期输出
- 分别测试正常情况、边界情况和无效操作
- 记录实际结果与预期结果的差异
- 修复问题后重新执行全部规则测试
- 临时测试入口在最终提交前移除
代码与项目整理
- 将状态、移动、渲染、输入和存储逻辑合理拆分
- 函数和变量名称能够表达实际用途
- 删除调试日志、重复代码和无用资源
- README 包含项目介绍、功能、运行方式、操作方法和截图
- 最终代码推送至 GitHub
必做任务
- 分析 2048 蓝湖设计图,整理页面结构、关键标注和资源清单。
- 根据设计图调整第 7 周完成的 HTML 结构和页面区域。
- 根据蓝湖标注完成标题、分数区、操作区、棋盘、方块、提示和按钮样式。
- 检查并完善当前分数、最高分、胜利、失败、重新开始和状态提示。
- 使用
localStorage保存并恢复最高分。 - 在设计图对应尺寸下截图对比,并逐项修复视觉偏差。
- 执行全部规则测试并记录结果。
- 整理核心函数、命名、目录和静态资源。
- 编写项目 README 并推送最终代码。
- 准备一次 5 分钟项目讲解。
功能验收
- 使用 HTML、CSS 和原生 JavaScript 开发,未使用游戏框架
- 使用 4×4 棋盘,通过键盘方向键控制移动
- 开始游戏时随机生成两个数字方块
- 仅在有效移动后于空白位置生成新数字
- 相同数字按照 2048 规则合并并正确累计分数
- 支持胜利、失败判定和重新开始
- 使用本地存储保存并恢复最高分
规则测试
-
[2, 2, 2, 2]向左移动后得到[4, 4, 0, 0] -
[4, 4, 8, 0]向左移动后得到[8, 8, 0, 0] -
[2, 2, 4, 0]向左移动后得到[4, 4, 0, 0],不能连续合并为 8 -
[4, 0, 4, 4]向左移动后得到[8, 4, 0, 0] - 仅移动位置但未合并时,分数不增加
- 棋盘状态没有变化时,不生成新数字
- 棋盘填满且不存在可合并的相邻数字时,游戏失败
- 出现 2048 方块时,显示胜利状态
- 重新开始后,棋盘和当前分数正确重置
- 刷新页面后,最高分能够正确恢复
工程验收
- 使用 Git 管理项目,提交记录能够体现主要开发过程
- 最终代码已推送至 GitHub
- 仓库包含项目介绍、运行方式、操作说明和截图
- HTML、CSS 和 JavaScript 文件职责清晰
- 核心移动和合并逻辑已拆分为独立函数
- 页面无明显错位、遮挡或控制台报错
- 能够独立讲解棋盘状态、移动合并算法和渲染流程
视觉验收
- 页面结构和区域顺序与 2048 蓝湖设计图一致
- 棋盘、方块、间距、圆角和阴影符合蓝湖标注
- 字体、字号、文字颜色和背景颜色符合设计图
- 分数、按钮和状态提示在内容变化时不会引起布局跳动
- 页面无明显错位、遮挡、溢出或资源加载失败
- 已提供设计图与最终页面的对比截图
本周产出
- 2048 最终验收版本
- 完整的规则测试记录
- 蓝湖设计图标注记录和视觉对比截图
- 包含说明和截图的 GitHub 仓库
- 一份阶段一知识复盘和待补强清单
- 两个阶段项目的口头讲解提纲