软件工程课程第二次个人作业
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/SE2024 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/SE2024/homework/13253 |
这个作业的目标 | 借助GitHub Copilot使用Python编写一个“羊了个羊”风格的消除类小游戏 |
学号 | 102201106 |
软件工程课程第二次个人作业
1.项目展示
仓库链接:https://github.com/yimiancc/software_engineer
2. 项目介绍
项目名称:Sheep!
一、前端设计与特色功能
开始菜单:点击Quit退出游戏,点击Start开始游戏,Setting功能尚未设置
开始游戏:
点击方块后,方块自动移动到底部。底部有三个相同方块后自动消除
警告:底部放置超过7个方块或倒计时结束则游戏失败!
1.底部放置超过7个方块则游戏失败
2.倒计时120秒结束则游戏失败
技术使用与特殊算法
1.列表推导和随机化:
(1)使用list(range(1, 13)) * 12创建了一个列表ts,包含1到12的数字(代表不同的方块类型),每个数字重复12次,总共144个元素。这模拟了游戏中可用的所有方块或牌面的初始集合。
(2)使用random.shuffle(ts)随机函数将列表ts中的元素随机排序。这是为了在游戏开始时为玩家提供不确定性和挑战性。
2.坐标计算:
对于每个方块,通过计算得到其在屏幕上的位置(x, y)。这里假设通过调整x、y、T_WIDTH和T_HEIGH,可以控制方块在游戏界面上的布局。
特别是在计算y坐标时,使用了* 0.9来调整垂直间距,来美化布局。
3. 游戏测试
测试样例:在开始菜单点击Setting、Start、Quit按钮时分别输出不同效果:"Setting clicked!"、"Start game!"和"Quit game!"来区分不同按钮功能是否正常运行
功能测试:开始菜单点击和跳转功能正常,游戏界面消除和倒计时功能正常
设计测试:开始菜单显示异常,游戏名称为中文时无法正常显示,改为英文名称
4. AIGC表格
子任务 | 借助何种AIGC技术实现了什么功能 | 效果如何? |
---|---|---|
游戏场景生成 | 利用悦灵犀AI生成多样的背景 | 生成的场景自然、丰富,有效提升了游戏的视觉体验 |
游戏逻辑开发 | 应用Copilot和文心一言协助代码开发和注释编写 | 编写代码更加轻松和简便,思路更开阔 |
游戏测试与调试 | 采用文心一言进行代码修改与调试 | 提供代码优化和完善的思路,还需要人工筛选和修改,不能照搬 |
AIGC技术的优缺点:
1. 适合用于代码的编写、纠错和完善优化上,能提供多样的思路,但是无法完全不出错,还需要人工调试。
2. 不适合生成图片,生成图片没有统一的风格,且无法生成带有文字的图片,需要人工筛选。
5. PSP表格
任务编号 | 任务描述 | 预估耗时(小时) | 实际耗时(小时) | 完成情况 | 做得好的地方 | 改进的地方 |
---|---|---|---|---|---|---|
1 | 项目规划与需求分析 | 2 | 3 | 已完成 | 清晰地界定了项目范围和目标,与利益相关者有效沟通 | 需求分析阶段可以更加细化,避免后期需求变更 |
2 | 技术选型与架构设计 | 3 | 4 | 已完成 | 选择了适合项目需求的技术栈,架构设计合理 | 架构设计初期未充分考虑扩展性,需在未来迭代中优化 |
3 | 美术资源制作 | 3 | 4 | 已完成 | 场景设计富有代入感,原创图案美术风格统一 | 场景交互设计有待加强,AI生成的图片风格偏差大,玩家体验有待提升 |
4 | 游戏逻辑开发 | 12 | 15 | 已完成 | 核心玩法实现稳定,游戏流程顺畅 | 性能测试中发现部分逻辑存在性能瓶颈,需优化算法 |
5 | 集成测试与调试 | 3 | 4 | 已完成 | 发现了并修复了大量bug,游戏稳定性得到提升 | 测试覆盖率有待进一步提高,特别是边缘案例测试 |
6 | 项目总结与文档编写 | 3 | 3 | 已完成 | 完整记录了项目过程,为未来项目提供了参考 | 文档结构可以更加清晰,便于查阅 |