progect106-1/README.md

3.5 KiB
Raw Blame History

谁是卧底游戏 - Streamlit Web应用

一、团队成员与贡献

姓名 学号 主要贡献(具体分工)
王子欣 2411020210 (组长)核心逻辑开发、Prompt编写、AI集成
赵珂蔓 2411020219 前端界面设计、PPT制作、UI优化
徐晨颖 2411020116 文档撰写、测试与Bug修复、游戏规则设计

二、项目简介 & 运行指南

简介

这是一个基于Streamlit开发的在线"谁是卧底"游戏解决了线下多人聚会时难以组织、角色分配不便的痛点。通过AI模拟玩家发言让单人也能体验多人推理游戏的乐趣。

如何运行

  1. 安装依赖:uv sync
  2. 启动应用:uv run streamlit run app.py
  3. 在浏览器中访问:http://localhost:8501

三、开发心得

1. 选题思考

为什么做这个?解决了谁的痛苦?

开发心得 (Development Reflection)

  1. 选题思考 为什么做这个?解决了谁的痛苦? 我一直是桌游爱好者但现实中朋友时间难凑线上平台体验又差。这个项目让我一个人也能体验推理乐趣。它服务于三类用户想练习技巧的爱好者、想学习规则的新手、需要团建的组织者。通过AI模拟真实玩家让单人游戏也有社交体验。
  2. AI 协作体验 2.1 初体验 第一次用AI写代码很震撼。它能快速生成框架但常理解错需求。我意识到AI是"超级实习生",需要明确指令和严格监督。 2.2 Prompt 交互 最牛的Prompt 请用Python实现一个Streamlit页面要求
  3. 使用2列布局展示游戏信息
  4. 左侧显示当前玩家列表(用紫色标签突出显示卧底)
  5. 右侧放置发言输入框和投票按钮
  6. 添加"显示/隐藏身份"切换开关
  7. 底部设置重置游戏按钮 注意组件间距保持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生成的质量是人类把关的——这就是新时代的编程模式。