# ForestHome **Repository Path**: turing-yan-jiaqi/forest-home ## Basic Information - **Project Name**: ForestHome - **Description**: 此项目为大二下学期Java课程设计的内容,是一个基于JavaFX开发的桌面教育游戏应用,旨在通过互动游戏方式帮助学生学习和练习数学算术运算。项目采用模块化设计,支持学生登录、等级选择、题目生成、成绩统计和排行榜等功能。主要通过JavaFX与数据库技术进行实现,主要有三个模式,不同模式中都可以在主页中选择难度(对应不同年级),并且使用了公共数据库来记录游戏得分与排行。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-01-18 - **Last Updated**: 2026-03-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: Java, Javafx ## README ### 项目名称 Forest Home (森林家园) - 教育数学游戏应用 #### 项目概述 这是一个基于JavaFX开发的桌面教育游戏应用,旨在通过互动游戏方式帮助学生学习和练习数学算术运算。项目采用模块化设计,支持学生登录、等级选择、题目生成、成绩统计和排行榜等功能。项目名称源于其“家园”主题界面,用户可以在虚拟森林中进行学习和游戏。 #### 项目结构与架构 ![软件整体结构](https://foruda.gitee.com/images/1772781090661742544/b8bb2006_13685194.png "屏幕截图") - **技术栈**: - 编程语言:Java - UI框架:JavaFX 21(包括Controls、FXML、Media模块) - 游戏引擎:FXGL 17.3(用于游戏逻辑) - 数据库:SQLite(用于存储学生信息和成绩) - 构建工具:Maven - 其他库:ControlsFX 11.1.2(增强UI控件) - **项目结构**: - demo03:主代码目录 - App.java:主入口,启动登录应用 - `Game*App.java`:各界面应用类(如登录、主页、游戏、设置等) - `Controller/`:JavaFX控制器,处理UI事件和逻辑 - `Database/`:数据库管理类,包括学生和书籍数据模型 - `Calcu/`:算术计算模块,包括题目生成器和解释器 - `Chart/`:图表工具类,用于生成柱状图、线图和饼图显示成绩 - `Objects/`:游戏对象类(如箭头、运算符) - `image/`:图像资源 - resources:资源文件,包括FXML视图、音频和图像 - pom.xml:Maven配置文件,定义依赖和构建 - **架构特点**: - MVC模式:Controller处理业务逻辑,FXML定义视图,Model(Database和Calcu)管理数据。 - 异步数据库连接:使用CompletableFuture进行异步SQLite连接。 - 模块化设计:不同功能(如登录、游戏、排行榜)分离为独立类,便于维护。 #### 主要功能 1. **用户登录与注册**: - 使用SQLite数据库存储学生信息(ID、密码、等级、健康、经验、金币、答题统计)。 - 登录后进入主界面,显示用户状态(金币、经验、健康值)。 2. **主界面(家园)**: - 地图式界面,用户可以选择游戏等级(1-6年级)。 - 点击不同区域购买虚拟物品,消耗金币。 - 显示用户统计数据。 3. **游戏模块**: - 根据选择的年级动态生成算术题(1年级:加减法;2-6年级:逐步增加乘除法和复杂运算)。 - 使用解释器模式(Interpreter)解析和计算题目。 - 答题后更新数据库:正确/错误次数、准确率、经验值。 4. **排行榜与统计**: - 使用JavaFX Chart生成图表(柱状图、线图、饼图)。 - 根据模式排序用户(按正确率或题目数)。 - 显示历史记录和成绩趋势。 5. **其他功能**: - 设置界面:调整游戏参数。 - 游戏结束界面:总结成绩。 - 书籍管理:存储学习资料。 - 音频和图像资源:增强用户体验。 #### 数据库设计 - **Student表**:存储学生信息,包括ID、密码、等级、健康、经验、金币、总题数、准确率、正确/错误答题数、登录日期。 - **Book表**:存储书籍信息(学习资料)。 - 使用JDBC连接SQLite,支持异步查询和更新。 #### 运行环境 - **操作系统**:跨平台(Windows、macOS、Linux),项目在Windows上开发。 - **Java版本**:支持Java 21(因JavaFX 21)。 - **构建与运行**: - 使用Maven构建:`mvn clean compile` 或 `mvnw.cmd compile`。 - 运行:执行App.java的main方法,或使用Maven插件打包为JAR。 - 依赖:需安装JavaFX运行时,或使用Maven插件自动处理。 #### 项目特点 - **教育性**:通过游戏化学习,提高学生数学兴趣和计算能力。 - **可扩展性**:模块化设计,便于添加新等级、题目类型或功能。 - **用户友好**:直观的JavaFX界面,支持鼠标交互和图表可视化。 - **数据持久化**:SQLite确保成绩和进度保存。