| .gitignore | ||
| .python-version | ||
| jsinvn.py | ||
| pyproject.toml | ||
| README.md | ||
| success_count.txt | ||
| uv.lock | ||
谁是卧底游戏 - Streamlit Web应用
一、团队成员与贡献
| 姓名 | 学号 | 主要贡献(具体分工) |
| 王子欣 | 2411020210 | (组长)核心逻辑开发、Prompt编写、AI集成 |
| 赵珂蔓 | 2411020219 | 前端界面设计、PPT制作、UI优化 |
| 徐晨颖 | 2411020116 | 文档撰写、测试与Bug修复、游戏规则设计 |
二、项目简介 & 运行指南
简介
这是一个基于Streamlit开发的在线"谁是卧底"游戏,解决了线下多人聚会时难以组织、角色分配不便的痛点。通过AI模拟玩家发言,让单人也能体验多人推理游戏的乐趣。
如何运行
- 安装依赖:
uv sync - 启动应用:
uv run streamlit run app.py - 在浏览器中访问:
http://localhost:8501
三、开发心得
1. 选题思考
为什么做这个?解决了谁的痛苦?
开发心得 (Development Reflection)
- 选题思考 为什么做这个?解决了谁的痛苦? 我一直是桌游爱好者,但现实中朋友时间难凑,线上平台体验又差。这个项目让我一个人也能体验推理乐趣。它服务于三类用户:想练习技巧的爱好者、想学习规则的新手、需要团建的组织者。通过AI模拟真实玩家,让单人游戏也有社交体验。
- AI 协作体验 2.1 初体验 第一次用AI写代码很震撼。它能快速生成框架,但常理解错需求。我意识到AI是"超级实习生",需要明确指令和严格监督。 2.2 Prompt 交互 最牛的Prompt: 请用Python实现一个Streamlit页面,要求:
- 使用2列布局展示游戏信息
- 左侧显示当前玩家列表(用紫色标签突出显示卧底)
- 右侧放置发言输入框和投票按钮
- 添加"显示/隐藏身份"切换开关
- 底部设置重置游戏按钮 注意:组件间距保持20px,整体使用暗黑主题 这个Prompt精准明确,AI生成了完美的界面代码。 最坑的Prompt/交互: 帮我做个谁是卧底游戏 这个模糊prompt让AI生成了无法运行的伪代码,混合了Flask和Streamlit语法,还用了过时的st.beta_columns。经过3次迭代才纠正方向。 2.3 Bug 解决 AI生成投票系统的Bug: AI生成的投票统计代码有严重问题:
AI的错误代码
def handle_vote(votes): counts = {} for v in votes: counts[v] += 1 # 没有初始化字典,会KeyError return max(counts) 如何发现并修复: 测试时系统频繁崩溃。我添加调试信息发现是字典未初始化。修正为: def handle_vote(votes): counts = defaultdict(int) for v in votes.values(): counts[v] += 1 return max(counts.items(), key=lambda x: x[1])[0] 这个Bug让我明白:AI能写代码,但不会考虑边界情况,必须人工验证。 3. 自我反思 3.1 离开 AI 离开AI我能完成基础版,但达不到现在的质量。我能做界面和逻辑框架,但AI发言系统和复杂投票机制需要AI协助。AI让开发从2周缩短到3天。 3.2 核心竞争力 AI时代,程序员的核心竞争力是: 问题定义能力:知道要解决什么问题 系统整合能力:将AI生成的模块组合成完整系统 质量把关能力:发现并修复AI的错误 价值判断能力:什么体验是"好"的,什么是"公平"的 未来编程是人与AI的协作。我的代码中,策略是人类定的,内容是AI生成的,质量是人类把关的——这就是新时代的编程模式。