- 实现智能排序:数字 -> 字母 -> 其他符号 - 添加 smartSort() 方法支持自然数值排序 - 默认启用排序功能,用户无需设置 - 支持多语言字符(中文、日文、英文等) - 添加完整的测试工具和文档 新增文件: - test_sort.html (可视化测试页面) - verify_sort.py (Python验证脚本) - verify_sort.js (Node.js验证脚本) - SORT_FEATURE.md (功能说明) - SORT_USAGE.md (使用指南) - QUICKSTART_SORT.md (快速开始) - IMPLEMENTATION_SUMMARY.md (实现总结) - CHANGELOG_SORT.md (更新日志) - UPDATE_SUMMARY.md (更新说明) 修改文件: - public/src/js/songselect.js (添加智能排序逻辑) - README.md (更新功能介绍)
194 lines
4.1 KiB
Markdown
194 lines
4.1 KiB
Markdown
# 歌曲智能排序功能 - 使用指南
|
||
|
||
## ✨ 功能简介
|
||
|
||
歌曲智能排序功能**已默认启用**,可以按照**数字 → 字母 → 其他符号**的顺序自动整理歌曲列表。
|
||
|
||
> 🎉 **好消息**:无需任何设置,首次使用即自动排序!
|
||
|
||
---
|
||
|
||
## 🎯 排序规则
|
||
|
||
### 优先级顺序
|
||
1. **数字开头** (0-9) - 最高优先级
|
||
2. **字母开头** (A-Z, a-z) - 中等优先级
|
||
3. **其他字符开头** (中文、日文、符号等) - 最低优先级
|
||
|
||
### 同类排序
|
||
- **数字**:按数值大小排序(1 → 2 → 10 → 100)
|
||
- **字母**:按字母表顺序,不区分大小写(A → a → B → b)
|
||
- **其他**:按 Unicode 编码排序
|
||
|
||
---
|
||
|
||
## 📖 使用方法
|
||
|
||
### ⚡ 默认行为(推荐)
|
||
|
||
**无需任何操作!**
|
||
|
||
1. 打开游戏
|
||
2. 歌曲已自动按智能顺序排列
|
||
3. 开始游玩
|
||
|
||
### 🔧 禁用排序(可选)
|
||
|
||
如果你不喜欢自动排序,可以禁用它:
|
||
|
||
#### 方法一:游戏内设置
|
||
|
||
1. 在歌曲选择界面找到 **"タイトル順で並べ替え"** 选项
|
||
2. 点击该选项
|
||
3. 在弹出的提示框中输入 `false` 禁用排序
|
||
4. 页面会自动刷新并恢复原始顺序
|
||
|
||
#### 方法二:浏览器控制台
|
||
|
||
按 `F12` 打开开发者工具,在控制台输入:
|
||
|
||
```javascript
|
||
// 禁用排序
|
||
localStorage.setItem("titlesort", "false");
|
||
location.reload();
|
||
|
||
// 重新启用排序
|
||
localStorage.setItem("titlesort", "true");
|
||
location.reload();
|
||
```
|
||
|
||
// 禁用排序
|
||
localStorage.setItem("titlesort", "false");
|
||
location.reload();
|
||
```
|
||
|
||
---
|
||
|
||
## 🧪 测试排序功能
|
||
|
||
### 在线测试页面
|
||
打开 `test_sort.html` 文件来查看排序效果演示:
|
||
|
||
```bash
|
||
# 启动本地服务器
|
||
cd taiko-web
|
||
python -m http.server 8080
|
||
|
||
# 然后在浏览器访问
|
||
http://localhost:8080/test_sort.html
|
||
```
|
||
|
||
### 测试结果示例
|
||
|
||
**排序前:**
|
||
```
|
||
太鼓の達人
|
||
Zyxwv Test
|
||
123 Song
|
||
abc melody
|
||
456 rhythm
|
||
*Special*
|
||
10 drums
|
||
...
|
||
```
|
||
|
||
**排序后:**
|
||
```
|
||
2 beats [数字]
|
||
10 drums [数字]
|
||
100 percent [数字]
|
||
123 Song [数字]
|
||
456 rhythm [数字]
|
||
777 [数字]
|
||
1st Place [数字]
|
||
3pieces [数字]
|
||
99 Balloons [数字]
|
||
abc melody [字母]
|
||
Angel Beats [字母]
|
||
Apple [字母]
|
||
Battle No.1 [字母]
|
||
Brave Heart [字母]
|
||
Don't Stop [字母]
|
||
Zyxwv Test [字母]
|
||
ZZZ Final [字母]
|
||
*Special* [其他]
|
||
~奇跡~ [其他]
|
||
あいうえお [其他]
|
||
カノン [其他]
|
||
ドンだー! [其他]
|
||
夏祭り [其他]
|
||
太鼓の達人 [其他]
|
||
燎原ノ舞 [其他]
|
||
零 -ZERO- [其他]
|
||
```
|
||
|
||
---
|
||
|
||
## 🔧 技术细节
|
||
|
||
### 修改的文件
|
||
- `public/src/js/songselect.js` - 添加了 `smartSort()` 方法
|
||
|
||
### 核心代码
|
||
```javascript
|
||
smartSort(titleA, titleB) {
|
||
// 判断字符类型(数字/字母/其他)
|
||
// 按类型优先级排序
|
||
// 同类型内使用 localeCompare 自然排序
|
||
}
|
||
```
|
||
|
||
### 特性
|
||
- ✅ 支持多语言(中文、日文、英文等)
|
||
- ✅ 数字按数值排序(不是字符串排序)
|
||
- ✅ 字母不区分大小写
|
||
- ✅ 保持用户设置(使用 localStorage)
|
||
- ✅ 不影响游戏其他功能
|
||
|
||
---
|
||
|
||
## ❓ 常见问题
|
||
|
||
### Q1: 排序后没有变化?
|
||
**A:** 确保已经正确设置 `titlesort` 为 `true`,并刷新页面。
|
||
|
||
### Q2: 如何恢复默认顺序?
|
||
**A:** 将 `titlesort` 设置为 `false` 并刷新页面。
|
||
|
||
### Q3: 排序会影响游戏性能吗?
|
||
**A:** 不会。排序只在加载歌曲列表时执行一次。
|
||
|
||
### Q4: 可以自定义排序规则吗?
|
||
**A:** 当前版本暂不支持,未来版本可能会添加。
|
||
|
||
---
|
||
|
||
## 📝 更新日志
|
||
|
||
### Version 1.0 (2025-11-15)
|
||
- ✨ 初始版本
|
||
- ✨ 支持数字、字母、其他符号的智能排序
|
||
- ✨ 添加游戏内设置选项
|
||
- ✨ 创建测试页面
|
||
|
||
---
|
||
|
||
## 🎮 快速开始
|
||
|
||
**5秒启用排序:**
|
||
|
||
1. 打开游戏
|
||
2. 找到 "タイトル順で並べ替え"
|
||
3. 输入 `true`
|
||
4. 完成!
|
||
|
||
**享受整洁有序的歌曲列表吧!** 🎵
|
||
|
||
---
|
||
|
||
## 📧 反馈与建议
|
||
|
||
如有问题或建议,请通过项目 Issues 提交。
|
||
|
||
**Processed by AnthonyDuan** 💜
|