logo
0
0
WeChat Login
更新游戏名称:红包保卫战 -> 红包挑战赛

🎮 Battle of AI Relatives - AI 亲戚红包挑战赛

基于 SecondMe API 的多人对话博弈游戏,1名BOSS vs 1-2名玩家,通过三轮对话抢夺红包。

🎯 项目概览

游戏玩法: 1名BOSS vs 1-2名玩家,3轮对话博弈 胜负判定: 好感度系统(0-100分),达到80分获胜 核心特色:

  • 9张角色性格卡片(3角色×3性格)
  • 3个难度等级(简单/中等/困难)
  • AI驱动的对话生成和评分
  • 实时WebSocket通信
  • 积分排行榜系统

技术栈:

  • 前端: Next.js 14 + TypeScript + Tailwind CSS
  • 后端: Next.js API Routes + Socket.IO
  • 数据库: SQLite(轻量级持久化)
  • AI引擎: SecondMe Act API

🚀 快速开始

方法1: Docker 快速部署(推荐)

# 1. 克隆项目 git clone <repository-url> cd secondme-app # 2. 配置环境变量 cp .env.local.example .env.local # 编辑 .env.local,配置 SECONDME_API_BASE_URL # 3. 使用快速启动脚本 ./quick-start.sh up # 启动服务 ./quick-start.sh full-test # 运行完整测试 # 4. 访问应用 open http://localhost:3000

方法2: Docker Compose 手动部署

# 启动服务 docker compose up -d # 查看日志 docker compose logs -f # 停止服务 docker compose down

方法3: 本地开发(需要 Node.js)

# 1. 安装依赖 npm install # 2. 配置环境变量 cp .env.local.example .env.local # 3. 启动开发服务器 npm run dev # 4. 访问 http://localhost:3000

📋 完整测试流程

使用快速测试脚本

# 运行完整测试 ./quick-start.sh full-test # 或分步测试 ./quick-start.sh up # 启动服务 ./quick-start.sh test # 测试 API ./quick-start.sh status # 查看状态

手动测试 API

# 1. 开发登录 curl -X POST http://localhost:3000/api/auth/dev-login \ -H "Content-Type: application/json" \ -d '{"username": "test_user"}' # 2. 创建游戏 curl -X POST http://localhost:3000/api/games/create \ -H "Content-Type: application/json" \ -d '{ "playerId": "user_id", "selectedCards": ["uncle_generous", "aunt_warm", "cousin_smart"], "difficulty": "medium" }' # 3. 发送消息 curl -X POST http://localhost:3000/api/games/chat \ -H "Content-Type: application/json" \ -d '{ "gameId": "game_id", "playerId": "user_id", "message": "阿姨过年好!", "round": 1 }' # 4. 查询排行榜 curl http://localhost:3000/api/leaderboard # 5. 查询历史记录 curl "http://localhost:3000/api/history?playerId=user_id"

WebSocket 测试

# 安装 wscat npm install -g wscat # 连接 WebSocket wscat -c ws://localhost:3000/api/socket # 发送消息 { "event": "game:join", "data": { "gameId": "game_id", "playerId": "user_id" } }

📖 详细文档

🛠️ 可用命令

快速启动脚本

./quick-start.sh up # 启动服务 ./quick-start.sh down # 停止服务 ./quick-start.sh status # 查看状态 ./quick-start.sh logs # 查看日志 ./quick-start.sh test # 测试 API ./quick-start.sh full-test # 完整测试 ./quick-start.sh rebuild # 重建服务 ./quick-start.sh cleanup # 清理数据 ./quick-start.sh help # 显示帮助

Docker Compose

docker compose up -d # 启动 docker compose down # 停止 docker compose logs -f # 日志 docker compose ps # 状态 docker compose up -d --build # 重建 docker compose down -v # 清理

开发命令

npm run dev # 开发服务器 npm run build # 构建应用 npm run start # 启动生产服务器 npm run lint # 运行 ESLint

🔧 配置说明

环境变量

变量名说明默认值
SECONDME_API_BASE_URLSecondMe API 地址https://app-api.mindos.com
NEXT_PUBLIC_APP_URL应用访问地址http://localhost:3000

文件结构

secondme-app/ ├── src/ │ ├── app/ # Next.js 页面和 API │ │ ├── api/ # API 路由 │ │ │ ├── auth/ # 认证接口 │ │ │ ├── games/ # 游戏接口 │ │ │ ├── leaderboard/ # 排行榜 │ │ │ ├── history/ # 历史记录 │ │ │ └── socket/ # WebSocket │ │ ├── game/ # 游戏页面 │ │ ├── leaderboard/ # 排行榜页面 │ │ └── layout.tsx # 布局组件 │ ├── components/ # React 组件 │ └── lib/ # 工具库 │ ├── db.ts # 数据库配置 │ ├── secondme.ts # SecondMe API 客户端 │ └── types.ts # TypeScript 类型 ├── data/ # SQLite 数据库 ├── Dockerfile # 生产镜像 ├── Dockerfile.dev # 开发镜像 ├── docker-compose.yml # Docker Compose 配置 ├── quick-start.sh # 快速启动脚本 └── *.md # 文档

🎮 游戏流程

1. 创建游戏

  • 选择角色卡片(3张)
  • 选择难度等级
  • 生成游戏房间

2. 加入游戏

  • 其他玩家输入房间ID加入
  • 支持1-2名玩家

3. 开始游戏

  • 房主点击开始
  • 系统初始化轮次

4. 对话博弈(3轮)

  • 玩家发送消息讨好BOSS
  • AI生成BOSS回复
  • 实时更新好感度

5. 结算胜负

  • 好感度≥80分获胜
  • 分配积分奖励
  • 保存游戏历史

✅ 项目状态

MVP 版本: 100% 完成 🎉

  • ✅ 所有前端页面(4个)
  • ✅ 所有 API 接口(10个)
  • ✅ 数据库表结构(6个表)
  • ✅ SecondMe API 集成
  • ✅ WebSocket 实时通信
  • ✅ 排行榜系统
  • ✅ 游戏历史记录
  • ✅ Docker 容器化部署

验收标准: ✅ 全部达成

🐛 问题反馈

如遇到问题,请查看:

  1. DOCKER_DEPLOYMENT.md - Docker 部署常见问题
  2. TESTING_GUIDE.md - API 测试和调试
  3. WEBSOCKET_VERIFICATION.md - WebSocket 问题排查

🤝 贡献指南

欢迎提交 Issue 和 Pull Request!

📄 许可证

MIT License

🙏 致谢

  • SecondMe - AI API 提供商
  • Next.js - React 框架
  • Socket.IO - WebSocket 库
  • SQLite - 轻量级数据库

🎉 开始游戏!

./quick-start.sh up

访问 http://localhost:3000 开始你的 AI 亲戚红包挑战赛!