基于纯 Java Swing 开发的桌面端拼图单机游戏。本项目抛弃了臃肿的第三方框架,回归底层原理,通过极致的坐标计算与内存数据管控,实现了一个极具可玩性、代码高度整洁的 GUI 游戏。
- ⚡ 极致的底层掌控力:遵循纯粹的面向对象与底层渲染哲学。放弃臃肿的事件委派框架,通过物理像素坐标逆推,满足对“全过程指针”级别内存操作的控制欲。
- 📐 核心降维算法:游戏底层的核心数据洗牌与映射,独创性地运用了万能降维公式,以最高效的内存拷贝(
System.arraycopy)完成一维数组到二维图形矩阵的瞬间转换。 - 🏆 智能计分系统:内置基于“保底积分(100分)+ 步数奖励”的结算算法。通关胜利后绝不清空保底积分,步数越少,奖励越丰厚。
- 🖼️ 相对资源加载:彻底告别“绝对路径”引发的白屏陷阱,全盘采用
getClass().getResource()类加载器读取资源,完美适配打包运行环境。 - 📦 纯净绿色免安装:利用现代 JDK 的
jlink与jpackage原生工具链,游戏被打包为独立的.exe可执行文件。小白玩家无需配置任何 Java 环境变量,下载双击即玩。
- 启动游戏:双击运行生成的
PuzzleGame.exe。 - 账号注册:支持简单的本地逻辑注册与登录验证(内置防抖与验证码安全机制)。
- 拼图交互:
- 点击任意一张图片碎片,使其进入红色边框高亮状态(选中)。
- 再次点击任意另一张碎片,即可完成两者的位置交换。
- 通关结算:将所有图片恢复为原始顺序即为通关。游戏会自动计算您的移动步数,并结算最终的高分!
- 辅助功能:支持顶部菜单栏快捷重开、查看原图提示。
本项目基于 JDK 26 开发,并使用 Maven 进行依赖与生命周期管理。如果您希望自行编译源码并打包为独立的 EXE 程序,请遵循以下完整步骤:
在项目根目录下,执行以下 Maven 指令,进行项目清理并打包(确保资源全部位于 src/main/resources 下):
mvnw clean package
构建成功后,将在 target/ 目录下生成 demo-1.0-SNAPSHOT.jar。
利用 JDK 原生工具,将庞大的 JDK 26 裁剪为只包含 GUI 运行所需模块的微型 JRE 环境:
jlink --module-path "%JAVA_HOME%\jmods" --add-modules java.desktop,java.base,java.net.http --output min-jre
执行以下命令,将 JAR 包与微型 JRE 缝合,输出最终的绿色版 Windows 应用:
jpackage --type app-image --name "PuzzleGame" --input target --main-jar demo-1.0-SNAPSHOT.jar --main-class com.example.demo.App --runtime-image min-jre --dest dist
打包完成后,前往 dist/PuzzleGame 目录,即可将整个文件夹打包成 zip 分发给任何没有 Java 环境的玩家体验!
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/example/demo/
│ │ │ ├── App.java # 程序启动入口
│ │ │ ├── LoginJFrame.java # 登录界面(含验证码逻辑)
│ │ │ ├── RegisterJFrame.java # 注册界面
│ │ │ └── GameJFrame.java # 游戏核心业务主界面
│ │ └── resources/
│ │ └── image/ # 打包所需的全部相对路径素材
├── pom.xml # Maven 构建配置文件
└── README.md
This project is licensed under the MIT License.