一个经典的密码破译逻辑推理小游戏,带有积分排行榜功能。
- 目标:在10次尝试内猜出正确的4色密码组合
- 反馈系统:
- 位置对:颜色和位置都正确
- 颜色对:颜色正确但位置错误
- 颜色选择:红、绿、蓝、黄、紫、青 共6种颜色
- 积分系统:
- 赢:1000 + (10 - 尝试次数) × 100 分
- 输:0 分
- 选择颜色:点击下方6个颜色圆形按钮
- 提交猜测:点击绿色"提交"按钮
- 撤销:点击"撤销"按钮移除最后一个颜色
- 清空:点击"清空"按钮清除当前猜测
- 查看排行榜:在游戏结束后点击"查看排行榜"
├── audio // 音频资源
├── images // 图片资源
├── js
│ ├── base
│ │ ├── animation.js // 帧动画的简易实现
│ │ ├── pool.js // 对象池的简易实现
│ │ └── sprite.js // 游戏基本元素精灵类
│ ├── libs
│ │ └── tinyemitter.js // 事件监听和触发
│ ├── npc
│ │ └── enemy.js // 敌机类(兼容代码)
│ ├── player
│ │ ├── bullet.js // 子弹类(兼容代码)
│ │ └── index.js // 玩家类(兼容代码)
│ ├── runtime
│ │ ├── background.js // 背景类(兼容代码)
│ │ ├── gameinfo.js // UI管理
│ │ └── music.js // 全局音效管理器
│ ├── databus.js // 管控游戏状态
│ ├── mastermind.js // Mastermind游戏逻辑核心
│ ├── leaderboard.js // 排行榜系统
│ ├── main.js // 游戏入口主函数
│ └── render.js // 基础渲染信息
├── .eslintrc.js // 代码规范
├── game.js // 游戏逻辑主入口
├── game.json // 游戏运行时配置
├── project.config.json // 项目配置
└── project.private.config.json // 项目个人配置
核心游戏逻辑类,负责:
- 生成随机密码
- 处理玩家猜测
- 计算反馈信息
- 管理游戏状态
主要方法:
- addColor(colorIndex) - 添加颜色
- submitGuess() - 提交猜测
- undoColor() - 撤销颜色
- clearGuess() - 清空猜测
排行榜管理系统,负责:
- 保存游戏得分
- 管理高分排名
- 查询玩家分数
主要方法:
- addScore() - 添加新分数
- getTopScores() - 获取前N名
- getPlayerBestScore() - 获取玩家最高分
游戏主控制器,负责:
- 游戏循环
- 触摸事件处理
- 界面管理
- 显示当前尝试次数
- 显示历史猜测和反馈
- 6个颜色选择按钮
- 提交、撤销、清空按钮
- 显示游戏结果
- 显示最终得分
- 失败时显示正确答案
- 重新开始和排行榜按钮
- 显示前10名玩家
- 显示玩家分数
- 返回游戏按钮
- 原生Canvas 2D绘制
- 微信小游戏API存储
- TinyEmitter事件系统
- 完整的触摸交互支持
- 使用微信开发者工具打开项目文件夹
- 点击"预览"或"真机调试"
- 按照游戏提示进行操作