跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

基于 AI 大模型构建交互式海龟汤游戏

综述由AI生成介绍如何利用 Python、Gradio 及大模型 API 开发一款交互式海龟汤(情境猜谜)游戏。通过调用 LLM 生成谜题并评估玩家回答,实现动态推理体验。文章涵盖 API 配置、代码实现及项目总结,展示了 AI 在游戏逻辑交互中的应用。

月光旅人发布于 2026/4/6更新于 2026/5/2023 浏览
基于 AI 大模型构建交互式海龟汤游戏

背景介绍

第一次接触海龟汤时,我还以为这是某种美食烹饪挑战,直到朋友抛出第一个谜题 ——'一个人走进酒吧,要了一杯水,酒保却掏出一把枪对准他,可这个人不仅没害怕,反而说了声谢谢离开了',才惊觉这是场烧脑的逻辑游戏。海龟汤,学名情境猜谜,玩家只能通过提问获取'是''否'或'无关'的回答,一步步拼凑出汤底背后的完整故事。这种用有限线索破解无限想象的过程,就像在黑暗中摸索开关,每次提问都是试探,当真相突然亮起时,那种恍然大悟的快感让人上瘾。

作为计算机专业的学生,在完成课程设计时,我常思考如何将文本逻辑交互应用于实际项目。既然海龟汤的本质是文本逻辑交互,为什么不做一款属于自己的海龟汤游戏?最初的念头源于对解谜的热爱。深夜和朋友玩海龟汤时,看着大家为了一个谜题争论到面红耳赤,最后被反转的汤底惊得笑出眼泪,我意识到这种互动游戏的魅力。市面上虽然有不少海龟汤游戏,但要么谜题老套,要么交互不够灵活。我想利用大模型 API 的高反应速度和灵活度,打造一款能实时生成新谜题、根据玩家提问动态调整线索的游戏,让每场推理都充满新鲜感。

技术选型

在开发课程设计和参与项目实践时,API 的选择直接影响着开发效率和最终成果。经过对比,选择支持多种编程语言和调用方式的通用大模型 API,无论是 Python、Java 还是其他语言,都能轻松适配。接口设计人性化,配合详细的文档和示例代码,能快速上手,大大节省了学习成本和开发时间。

对于项目开发来说,充足的调用额度是常态需求。API 提供的调用额度十分慷慨,完全能满足日常学习和项目实践的需求,不用担心因为调用次数不够而中断开发。同时,合理的定价策略也降低了试错成本,让开发者能将更多精力集中在功能实现上。

实现步骤

首先进行 API 的获取以及确认需要调用的模型编号。在模型广场中选择一个模型,复制其名称下方的 AI 模型编号。

然后创建 API Key 并进行复制。

参考 API 调用的官方文档,这里选择 Python 代码进行 AI 的调用,需要将你的 API Key 和要调用的模型名称粘贴进去。

from openai import OpenAI

# 构造 client
client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="YOUR_API_BASE_URL",
)

# 流式
stream = True

# 请求
chat_completion = client.chat.completions.create(
    model="YOUR_MODEL_ID",
    messages=[
        {
            "role": "user",
            "content": "你是谁",
        }
    ],
    stream=stream,
)

if stream:
    for chunk in chat_completion:
        # 打印思维链内容
        if hasattr(chunk.choices[0].delta, 'reasoning_content'):
            print(f"{chunk.choices[0].delta.reasoning_content}")
        # 打印模型最终返回的 content
        if hasattr(chunk.choices[0].delta, 'content'):
            if chunk.choices[0].delta.content != None and len(chunk.choices[0].delta.content) != 0:
                print(chunk.choices[0].delta.content)
else:
    result = chat_completion.choices[0].message.content

打开 IDE 对 AI 说出你的提示词,让 AI 帮你开发一个具体的应用。

经过几轮调试生成好代码。代码生成好了之后,直接在终端输入命令 python main.py。运行之前一定记得将依赖都安装好。

下面是部分核心代码,供参考:

import gradio as gr
import json
import requests

API_KEY = "YOUR_API_KEY"
API_URL = "YOUR_API_BASE_URL/chat/completions"

def get_initial_riddle():
    headers = {
        "Content-Type": "application/json",
        "Authorization": f"Bearer {API_KEY}"
    }
    data = {
        "model": "YOUR_MODEL_ID",
        "messages": [
            {
                "role": "user",
                "content": "请你扮演一个出题人,给我出一道海龟汤题目。请按照以下格式输出:1. 题目描述 2. 正确答案。请确保题目有趣且富有创意。"
            }
        ],
        "stream": False
    }
    response = requests.post(API_URL, headers=headers, json=data)
    response_data = response.json()
    return response_data['choices'][0]['message']['content']

def check_answer(user_answer, history):
    headers = {
        "Content-Type": "application/json",
        "Authorization": f"Bearer {API_KEY}"
    }
    messages = [
        {"role": "assistant", "content": history[0][1]},  # 原题目和答案
        {"role": "user", "content": f"玩家的回答是:{user_answer}。请你判断这个回答是否接近正确答案,如果正确就表扬他,如果错误就给出一些提示,但不要直接告诉答案。"}
    ]
    data = {
        "model": "YOUR_MODEL_ID",
        "messages": messages,
        "stream": False
    }
    response = requests.post(API_URL, headers=headers, json=data)
    response_data = response.json()
    ai_response = response_data['choices'][0]['message']['content']
    history.append((user_answer, ai_response))
    return "", history

def create_new_riddle(history):
    new_riddle = get_initial_riddle()
    history = [(None, new_riddle)]
    return history

with gr.Blocks(theme=gr.themes.Soft()) as demo:
    chatbot = gr.Chatbot(
        [],
        elem_id="chatbot",
        bubble_full_width=False,
        avatar_images=(None, "🤖"),
    )
    with gr.Row():
        txt = gr.Textbox(
            scale=4,
            show_label=False,
            placeholder="请输入你的答案...",
            container=False,
        )
        submit_btn = gr.Button("提交", scale=1)
    new_riddle_btn = gr.Button("出新题")
    txt.submit(check_answer, [txt, chatbot], [txt, chatbot])
    submit_btn.click(check_answer, [txt, chatbot], [txt, chatbot])
    new_riddle_btn.click(create_new_riddle, [chatbot], [chatbot])
    demo.load(create_new_riddle, [chatbot], [chatbot])

if __name__ == "__main__":
    demo.launch()

结语

开发过程中,大模型的高效响应为谜题秒级生成提供支持,灵活的接口适配让玩法设计不受束缚,充足的调用量与合理的价格,则为游戏的持续优化与迭代保驾护航。结合创新思维与技术工具,让这款融合了逻辑推理与硬核实力的游戏得以成型。

目录

  1. 背景介绍
  2. 技术选型
  3. 实现步骤
  4. 构造 client
  5. 流式
  6. 请求
  7. 结语
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Java 大数据在智能家居能源消耗趋势预测与节能策略优化中的应用
  • 私有化部署 FastGPT+OneAPI 构建大模型知识库
  • 基于 ChatGPT 构建电商客服问答系统
  • Java 自定义注解详解
  • 鸿蒙 ArkWeb 组件内核:加载机制与 Cookie 管理
  • Python 性能优化的 8 个实用技巧
  • StarRocks 与 MySQL 深度对比:架构、性能与选型
  • 2026 年高校 AIGC 检测新规解读:AI 率合格标准分析
  • 机器人通讯架构选型:CAN/FD、高速 485 与 EtherCAT 深度对比
  • 机器人第一性原理:技术演进的本构逻辑与实现路径
  • Java 核心工具类实战:String 与日期时间 API
  • 基于 WebSocket 的外汇实时数据接入方案
  • FPGA 模块助力现代工厂实现高速数据采集与实时处理
  • Seedance 2.0 权限越界事件复盘与飞书机器人安全加固
  • Windows 系统 Python 安装与配置详细教程
  • RAG 查询优化技术详解:扩展、分解、消歧与抽象
  • C++ 超级马里奥项目架构与实现解析
  • 大疆 Mavic 3 Pro 百亿像素全景拍摄与后期处理方案
  • LLM 大模型技术:检索增强生成 RAG 原理与实战详解
  • Java 入门指南:环境配置与核心语法解析

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online