# sudoku **Repository Path**: sentop/sudoku ## Basic Information - **Project Name**: sudoku - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-05 - **Last Updated**: 2026-05-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 数独游戏 一个基于 Vue 3 + Vite + TypeScript 的数独游戏 Web 应用。 ## 功能特性 - ✅ 3个难度等级(简单/中等/困难) - ✅ 即时冲突检测(红框+数字标红) - ✅ 笔记系统(手动添加候选数字) - ✅ 自动标记(智能推荐候选数字) - ✅ 撤销/重做 - ✅ 提示功能 - ✅ 数字高亮 - ✅ 键盘导航和快捷键 - ✅ 自动保存游戏进度 - ✅ 胜利检测和用时显示 ## 技术栈 - **前端框架**: Vue 3 (Composition API) - **构建工具**: Vite - **语言**: TypeScript - **状态管理**: Pinia - **国际化**: vue-i18n (预留,初始中文) - **测试**: Vitest (单元测试), Vue Test Utils (组件测试) ## 快速开始 ### 安装依赖 ```bash npm install ``` ### 开发模式 ```bash npm run dev ``` 访问 http://localhost:5173 ### 构建生产版本 ```bash npm run build ``` ### 运行测试 ```bash # 单元测试 npm run test:unit # 所有测试 npm test ``` ### 类型检查 ```bash npx vue-tsc --noEmit ``` ## 键盘快捷键 | 按键 | 功能 | |------|------| | ↑↓←→ | 移动选中格子 | | 1-9 | 填入数字 | | Delete/Backspace | 清除格子 | | N | 切换笔记模式 | | Ctrl+Z | 撤销 | | Ctrl+Y | 重做 | | Ctrl+M | 自动标记 | | Ctrl+R | 重置 | | H | 提示(需选中格子) | | Escape | 取消选中 | ## 项目结构 ``` src/ ├── components/ # Vue 组件 │ ├── Cell.vue │ ├── SudokuGrid.vue │ ├── NumberPad.vue │ ├── Toolbar.vue │ ├── DifficultySelector.vue │ └── VictoryModal.vue ├── composables/ # 可复用逻辑 │ ├── useGameLogic.ts │ ├── usePuzzleGenerator.ts │ ├── useNotes.ts │ ├── useAutoMark.ts │ ├── useUndoRedo.ts │ └── useKeyboardNavigation.ts ├── stores/ # Pinia 状态管理 │ └── gameStore.ts ├── utils/ # 工具函数 │ ├── sudokuSolver.ts │ ├── validators.ts │ └── storage.ts ├── types/ # TypeScript 类型定义 │ └── game.ts ├── locales/ # 国际化资源 │ └── zh-CN.ts └── styles/ # 全局样式 └── main.css ``` ## 开发 ### 添加新功能 1. 在 `src/composables/` 中添加业务逻辑 2. 在 `src/components/` 中添加 UI 组件 3. 在 `src/stores/gameStore.ts` 中集成 4. 在 `tests/` 中添加测试 ### 状态管理 游戏状态统一使用 Pinia store (`src/stores/gameStore.ts`),包含: - 当前谜题数据 - 游戏状态(进行中/已完成) - 操作历史(撤销/重做) - 用户设置 ## License MIT