liuxiaogang-com/desktop-icon-billiards
游戏把 Windows 桌面图标摆成台球桌,瞄准蓄力击球,退出后恢复桌面。
项目介绍
桌面图标台球把 Windows 桌面上的图标当作台球,在桌面上叠加一层透明游戏画面:移动鼠标瞄准,按住左键蓄力,松开击球。图标滚动、碰撞、入袋时保留原来的缩略图,退出后桌面恢复原样。
游戏提供瞄准辅助线(白线为首次碰撞前路线,蓝线为白球碰球或碰库后的方向,绿线为被撞图标方向)、碰撞圈、从第一杆开始计算的用时、剩余图标数和击球数统计。球数固定在 15~45 颗:桌面图标不足时复制补足,超过时优先快捷方式和程序,其次文件,最后文件夹;补球和落选只影响游戏画面,不改动桌面。
它适合想在桌面上玩一局短游戏的 Windows 10/11 x64 用户,也适合想阅读或改造源码的 Python 开发者。
快速使用
README 的主要入口是单文件 EXE,可从 GitHub Releases 或 CNB 国内镜像 下载。在 Windows 10/11 x64 上直接运行,没有单独的安装步骤;README 另给出官网入口。
从源码运行需要 Windows 10/11 x64、Explorer 桌面和 Python 3.11+(含 Tk)。README 的流程使用 uv:
uv venv --managed-python --python 3.12 .venv
uv pip install --python .\.venv\Scripts\python.exe -r requirements.txt
.\run.cmd
如果双击 run.cmd 没有窗口,在 PowerShell 中运行 .\\.venv\\Scripts\\python.exe -X utf8 app.pyw 查看错误。访问 Explorer 遇到「拒绝访问」时,README 建议在当前登录用户的普通桌面会话运行;用 Microsoft Store 版 Python 创建过虚拟环境时,可移走旧 .venv 后重建。
操作与排名
启动后等图标摆好,移动鼠标选择方向,按住左键蓄力,松开击球;用「辅助线」开关切换瞄准线。按 Esc、点击「退出」或使用 Ctrl+Alt+X 恢复桌面。README 说明 0.1.4 暂时停用隐藏桌面功能,因此退出或快捷键是当前支持的离开方式。
「全球排名」默认关闭,首次启动询问一次。开启后,每局清台提交用时、图标数、击球数以及由本机系统 ID 加盐哈希得到的匿名设备标识;README 说明不会上传图标名称、桌面截图或文件信息。排名需要联网,离线时游戏不受影响,只是本局不提交。设备凭据保存在 %APPDATA%\DesktopIconBilliards\rank.json。
运行约束与隐私
游戏通过 Windows Shell 读取桌面图标缩略图和布局,用独立桌面图层绘制画面,台面内的高斯模糊取自本地壁纸文件;README 声明不截取桌面画面、不采集音频。游戏期间更改分辨率、DPI 或屏幕布局会停止本局并恢复桌面。桌面图标需要处于显示状态,同一时间只允许运行一个实例。诊断日志位于 %TEMP%\DesktopIconBilliards(diag.log、error.log)。
打包需要 PowerShell 7 和 uv,运行 pwsh -File build.ps1 生成 dist/DesktopIconBilliards-<version>-win-x64.exe 并输出大小和 SHA-256;测试命令为 .\\.venv\\Scripts\\python.exe -m unittest discover -s tests -t . -v。更新格式和发布步骤见 UPDATE.md 与示例更新清单。项目采用 MIT 许可证(LICENSE)。
HotRepo 点评
2026-11-12 该项目进入 HotRepo 新项目榜 Python 榜,当时 106 Star、11 Fork;约 1.5 小时的采样窗口内净增 5 Star。观察时间很短,只能说明当时有一定关注,不足以判断长期趋势。仓库没有记录全部语言日榜名次,HotRepo 没有可报告的最佳排名。
从实现角度看,值得注意的取舍是把游戏画面与真实桌面分开:只读取和绘制图标,不改动桌面,并用看门狗在游戏异常退出后尝试恢复。发布物是单文件 Windows EXE,而源码是 Python;在意二进制与源码对应关系的用户可以直接从源码构建,README 提供了构建脚本和测试命令。
本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。