基于 Spring Boot 与大语言模型的海龟汤推理小游戏设计与实现

基于 Spring Boot 与大语言模型的海龟汤推理小游戏设计与实现

本文记录一次 Java 课程设计项目的完整开发过程:
通过 Spring Boot 构建后端服务,引入大语言模型作为裁判,实现一个可交互、可重复游玩的海龟汤推理网页小游戏。
代码开源网址:https://github.com/DOKIYBEKIY/turtle-soup-ai


一、我的想法

在课程设计选题阶段,我希望完成一个具备实际可玩性的项目,而不仅仅是控制台程序。

海龟汤游戏本身具有以下特点:

  • 强逻辑性,适合推理过程建模
  • 依赖自然语言理解,传统规则难以覆盖
  • 游戏流程明确,适合做完整闭环设计

因此,我的初始目标是:

  • 使用 Java 构建完整后端服务
  • 通过网页进行交互,而非控制台
  • 引入大语言模型作为“裁判”
  • 项目最终能做到“真的能玩”

二、实现思路

整体实现思路可以概括为三点:

  1. Spring Boot 负责流程控制

    • 游戏状态管理
    • 接口调度
    • 日志记录
  2. 前端只做最小逻辑

    • 页面展示
    • 用户输入
    • 弹窗反馈
  3. AI 专注语义判断

    • 回答是 / 否 / 无关
    • 判断是否已复盘出完整汤底

这种分工可以最大程度减少规则代码复杂度。


三、总体框架

整体架构采用典型的前后端分离模式:

浏览器(HTML + JS)  
 ↓ HTTP  
Spring Boot 后端  
 ↓   
AI服务(大语言模型)  

后端作为核心调度层,负责:

  • 汤题加载
  • 游戏状态维护
  • AI 调用与结果解析

四、模块划分与分包设计

项目主要包结构如下:

com.example.turtle_soup_ai
├── controller // 接口层
├── domain     // 数据模型
├── service    // 业务逻辑层
└── resources  // 静态资源与配置文件

各包职责说明

controller

  • 提供/start/ask/guess 等接口
  • 仅负责请求转发,不包含业务逻辑
    domain
  • 定义核心数据模型(GameSession)
  • 封装业务数据的结构与属性
    service
  • 管理当前游戏会话状态(GameService)
  • 控制题目轮换
  • 调用 AI 服务并解析结果(如AIService)
    resources
  • static/index.html:前端页面入口
  • application.yaml:项目配置文件

这样分包避免controller过于臃肿


五、核心代码片段

问题一:题目喝完后页面卡死

  • 现象:

提示“喝完所有汤”后无法重新开始

  • 原因:

使用浏览器 alert,中断了逻辑流程

  • 解决:

使用自定义终局弹窗;增加 reset 接口重置题库状态

七、功能实现与迭代

1. 基础功能

游戏开始
提问 / 放弃
AI 判断是 / 否 / 无关

2. 拓展功能

AI 胜利判定
题目不重复机制
胜利 / 终局弹窗
游戏完整重置

功能按照“先能玩 → 再好玩”的顺序逐步迭代。

八、效果展示

【此处插入主界面运行截图:展示汤面与提问区】

【此处插入胜利弹窗截图:展示 WIN 提示】

【此处插入终局弹窗截图:展示全部题目完成】

九、优化方向与技术总结

可优化方向

历史回顾页面,完整复盘推理过程

多难度胜利判定策略

前端状态管理进一步抽象

技术总结

通过本次课程设计,我完整实践了:

Spring Boot Web 项目结构设计

REST 接口设计与调试

大语言模型的工程化使用

posted @ 2026-01-15 13:29  我今天真的要早睡了  阅读(3)  评论(0)    收藏  举报