FastAPI垃圾分类跑酷游戏

作者:Daniel
发布于:2025/7/1
10
内容创作
开发
教育

用户输入

生成FastAPI集成游戏的提示词模板 完整提示词 请创建一个单文件集成的2D跑酷游戏,具体要求如下: 🏗️ 技术架构 • 后端框架: FastAPI • 前端技术: HTML5 Canvas + JavaScript • 文件组织: 所有代码集成在一个Python文件中 • 端口设置: 使用8800端口,支持局域网访问(host="0.0.0.0")http://10.205.138.150:8800/ 🎮 游戏功能 • 游戏类型: 2D侧边视角跑酷游戏 • 角色控制: 自动奔跑,空格键或鼠标点击跳跃 • 游戏机制: 随机生成障碍物,碰撞即游戏结束 游戏控制: 开始、暂停、重新开始功能 🔧 技术要求 • 代码风格: 精简高效,采用科学的代码结构,用户只需运行 python 文件,即可开始游戏,无需其他依赖文件 • 数据存储: 游戏将数据写入 Excel 文件 day3.xlsx,包括员工工号、姓名、游戏得分、如果 day3.xlsx 不存在,自动创建并添加表头;如果已存在,则只追加记录,不清空原数据登录时间, • API设计: 使用Pydantic数据模型,RESTful API风格 • 前端架构: ES6类封装游戏逻辑,模块化设计,所有 HTML、CSS、JavaScript 必须作为字符串内嵌在 Python 脚本中,使用 FastAPI 的 Jinja2 模板或 HTMLResponse 渲染 11. 使用 openpyxl 操作 Excel 文件 12. 页面不需要动画,界面响应快,所有功能简洁清晰规则要求: 🗑️ 游戏规则: 1. 游戏目标: o 玩家控制一个小人,在跑酷过程中捡垃圾并将其分类到对应的垃圾桶。 o 游戏中的垃圾桶有三种类型:可回收、厨余、其他。 o 每种垃圾桶对应一种垃圾,玩家需要将垃圾分类正确才能得分。 2. 游戏角色: o 玩家控制的小人最多可以在两只手中各拣起一件垃圾,总共最多可以拿到两件垃圾。 o 拣垃圾的过程没有得分,只有将垃圾放进正确的垃圾桶后才能得分。 3. 垃圾和垃圾桶: o 游戏中会随机刷出垃圾和垃圾桶,玩家必须根据垃圾桶的类型来分类垃圾。 o 如果手中有对应类型的垃圾,则可以撞到垃圾桶并消耗手中的垃圾。 o 如果手中的垃圾与当前垃圾桶不匹配,玩家需要跳过去,否则游戏失败。 o 撞击垃圾桶时没有得分,只有正确分类垃圾时才能得分。 o 只有当垃圾被正确放入垃圾桶中时,才加一分。 4. 跳跃机制: o 如果玩家手中的垃圾与当前垃圾桶类型不匹配,则需要跳过垃圾桶。 o 跳跃本身没有加分,只是避免失败。 5. 得分规则: o 只有将垃圾正确投放进对应的垃圾桶后,才能获得1分。 o 时间不加分,得分完全取决于垃圾分类的准确性。 6. 游戏失败: o 如果玩家在游戏过程中碰到不匹配的垃圾桶且没有及时跳过,则游戏失败。 📱 界面要求 • 样式设计: 简洁美观的CSS样式,响应式布局,游戏页面背景为白色,风格简洁现代,模拟办公室 • 游戏画布: HTML5 Canvas实现游戏渲染 • 用户界面: 显示得分、控制按钮、游戏状态,玩家首先输入姓名和工号,点击开始按钮后,开始计时 • 排行榜:提供一个路由 /dashboard,展示排行榜页面,读取 Excel 文件中的数据,按游戏用时升序排序显示,列包括排名、工号、姓名、游戏时间、登录时间 • • 📁 【素材路径说明】 • - 所有图片都保存在:C:\Users\nsclonli\Desktop\Day3\BIN • - 角色图片:BIN\role.png • - 厨余垃圾及其桶在:BIN\Kitchen Waste\ • - 可回收垃圾及其桶在:BIN\Recyclable Waste\ • - 其他垃圾及其桶在:BIN\Other Waste\ • • 📦 【垃圾分类说明】 • 1. 厨余垃圾(绿色桶):Fish bones.png、Fruit pits.png、Leftover dishes.png、Meat bones.png、Orange peels.png、Kitchen waste bin.png • 2. 可回收垃圾(蓝色桶):Old books.png、Plastic water bottles.png、Used cardboard boxes.png、Recyclable waste bin.png • 3. 其他垃圾(橙色桶):Cigarette butts.png、Glue.png、Milk tea cup.png、Plastic bags.png、Wet wipes.png、Other waste bin.png • • 👤 【人物角色】 • - 使用 BIN\role.png 做为可控制角色(键盘方向键或鼠标拖动) • - 角色可以移动,将垃圾拖动到对应的垃圾桶进行投放 • • 🕹 【游戏功能要求】 • - 界面大小建议:1280x720 • - 拖拽垃圾图标到正确垃圾桶可得分,错误扣分 • - 随机生成垃圾在屏幕上方 • - 拖动到垃圾桶范围内判断类型是否正确 • - 显示当前得分 • - 倒计时或计时器功能(比如60秒挑战) 🎯 核心特性 • 单文件部署: 所有代码在一个.py文件中,直接运行 • 局域网支持: 可在局域网内多设备访问 • 性能优化: 流畅的游戏循环和渲染 • 错误处理: 基本的异常处理和用户反馈 ________________________________________ 🔧 关键技术点提示 FastAPI结构 from fastapi import FastAPI from fastapi.responses import HTMLResponse import uvicorn from pydantic import BaseModel 游戏类设计 class ParkourGame { constructor() { /* 初始化 */ } start() { /* 开始游戏 */ } update() { /* 游戏逻辑 */ } render() { /* 渲染画面 */ } gameLoop() { /* 主循环 */ } } 网络配置 uvicorn.run( app, host="0.0.0.0", # 局域网访问 port=8800, # 指定端口 log_level="warning" ) ________________________________________ 📋 可选扩展提示 如需增加功能,可在提示词中添加: • 音效支持: Web Audio API实现跳跃和碰撞音效 • 难度系统: 逐渐增加游戏速度和障碍物密度 • 视觉效果: 粒子系统、背景动画、角色动画 • 数据持久化: SQLite数据库存储历史得分 • 多人功能: WebSocket实现实时排行榜 • 移动适配: 触摸控制和移动端优化 ________________________________________ 🎯 输出期望 最终应生成一个集成其中的Python文件,包含: 1. 完整的FastAPI应用 2. 内嵌的HTML/CSS/JavaScript游戏代码 3. API接口用于数据交互 4. 清晰的代码注释和模块化结构 5. 可直接运行的完整应用 ✅ 三类垃圾提示词 + 路径映射 你提到的垃圾分类结构如下: 📁 主目录路径: C:\Users\nsclonli\Desktop\Day3 📁 垃圾素材文件夹路径: C:\Users\nsclonli\Desktop\Day3\BIN ________________________________________ 🟩 可回收垃圾(Recyclable Waste) python 复制编辑 recyclable_waste = { "旧书": r"BIN\Recyclable Waste\Old books.png", "塑料水瓶": r"BIN\Recyclable Waste\Plastic water bottles.png", "纸箱": r"BIN\Recyclable Waste\Used cardboard boxes.png", "可回收垃圾桶": r"BIN\Recyclable Waste\Recyclable waste bin.png" } ________________________________________ 🟧 其他垃圾(Other Waste) python 复制编辑 other_waste = { "烟头": r"BIN\Other Waste\Cigarette butts.png", "胶水": r"BIN\Other Waste\Glue.png", "奶茶杯": r"BIN\Other Waste\Milk tea cup.png", "塑料袋": r"BIN\Other Waste\Plastic bags.png", "湿纸巾": r"BIN\Other Waste\Wet wipes.png", "其他垃圾桶": r"BIN\Other Waste\Other waste bin.png" } ________________________________________ 🟫 厨余垃圾(Kitchen Waste) 假设你将“Fish bones”、“Fruit pits”等放在: BIN\Kitchen Waste 目录下 python 复制编辑 kitchen_waste = { "鱼骨": r"BIN\Kitchen Waste\Fish bones.png", "果核": r"BIN\Kitchen Waste\Fruit pits.png", "剩饭剩菜": r"BIN\Kitchen Waste\Leftover dishes.png", "肉骨头": r"BIN\Kitchen Waste\Meat bones.png", "橘子皮": r"BIN\Kitchen Waste\Orange peels.png", "厨余垃圾桶": r"BIN\Kitchen Waste\Kitchen waste bin.png" }

提示词

### 🎯 FastAPI垃圾分类跑酷游戏

```
你是一位全栈开发专家,精通FastAPI、HTML5游戏开发和Python集成开发。请创建一个完整的单文件FastAPI应用,实现一个2D垃圾分类跑酷游戏,具体要求如下:

角色定义:
- 作为FastAPI开发者,你需要将前端游戏代码内嵌到Python文件中
- 作为游戏设计师,你需要实现流畅的跑酷游戏机制
- 作为数据工程师,你需要处理Excel数据存储

技术规范:
1. 使用FastAPI作为后端框架,端口8800,支持局域网访问(host="0.0.0.0")
2. 前端使用HTML5 Canvas + JavaScript(ES6类封装)
3. 所有代码集成在单个Python文件中
4. 使用openpyxl操作Excel文件(day3.xlsx)
5. 采用Pydantic数据模型和RESTful API设计

游戏功能:
- 2D侧边视角跑酷游戏,角色自动奔跑
- 空格键/鼠标点击跳跃
- 随机生成三种垃圾桶和对应垃圾
- 玩家最多可携带两件垃圾
- 正确分类得分,错误碰撞则游戏结束
- 显示得分、计时器和控制按钮

数据管理:
1. Excel文件存储员工工号、姓名、得分、登录时间
2. 自动创建文件并添加表头(如不存在)
3. /dashboard路由展示排行榜(按用时排序)

界面要求:
- 简洁现代风格,白色背景
- 1280x720画布大小
- 响应式布局
- 包含游戏状态显示和控制面板

素材处理:
- 角色图片:BIN/role.png
- 三类垃圾及其桶使用指定路径图片
- 所有图片路径需正确映射

输出约束:
- 代码必须可直接运行(python file.py)
- 包含完整注释和错误处理
- 前端代码作为字符串内嵌
- 使用Jinja2模板或HTMLResponse渲染

示例结构:
```
from fastapi import FastAPI
from fastapi.responses import HTMLResponse
import uvicorn
from pydantic import BaseModel

app = FastAPI()

# 游戏HTML/CSS/JS内嵌字符串
html_content = """
<!DOCTYPE html>
<html>
...
</html>
"""

@app.get("/")
async def game():
    return HTMLResponse(content=html_content)

# 其他路由和游戏逻辑...
```

质量标准:
1. 游戏运行流畅,无明显卡顿
2. 垃圾分类逻辑准确无误
3. 数据存储完整可靠
4. 界面响应迅速
5. 代码结构清晰易维护
```