软工第二次作业
第二次作业
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/SE2024 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/SE2024/homework/13253 |
这个作业的目标 | 借助AIGC工具,使用Python编写一个“羊了个羊”风格的消除类小游戏,完成游戏的基本功能和交互设计。 |
学号 | 102201427 |
1. 项目展示
https://github.com/Miyer003/ALittleGame
2. 项目介绍
2.1 游戏界面设计
- 主菜单界面:玩家可以从键盘上输入1、2、3、4来选择不同难度(简单、中等、困难)以及查看帮助说明。
- 游戏界面:包含左侧的待匹配区域和右侧的已匹配区域,显示剩余时间和得分,并允许玩家通过点击匹配图标进行消除。
- 帮助页面:展示游戏规则和按键操作提示。
- 结束页面:当游戏胜利或失败时,展示游戏结果和返回主菜单的提示。
2.2 游戏逻辑
- 图标生成与摆放:随机生成图标的摆放顺序,图标固定排列在屏幕上。通过点击选择两个相同的图标进行匹配消除。
- 倒计时机制:游戏有倒计时,玩家需要在倒计时结束前完成所有匹配,否则游戏失败。
- 匹配消除逻辑:玩家每次点击两个图标,若匹配成功则得分并将其移入已匹配区域,若不匹配则会提示并清空选择。
- 难度设置:根据不同的难度设置,调整图标的数量、摆放方式以及游戏时间,简单模式有更少的图标和较长的时间,而困难模式则相反。
2.3 附加功能
- 提示功能:玩家可通过按
Ctrl+H
键使用提示功能,随机提示一个未匹配的图标,以绿色方框标出,以能够在混乱的困难模式中,在时间紧迫的情况下找到未匹配的图标。
- 撤销功能:玩家可通过按
Ctrl+U
键撤销上一次成功的匹配操作。
👉 - 音效功能:我在游戏过程中添加了单击的音效、配对成功的音效、配对错误的音效、游戏成功、失败的音效,以及整个游戏都有背景音乐,以提高玩家的体验感。
3. 项目测试与体验
在测试过程中,确保了以下几个方面的正常运行:
- 多难度切换:玩家可以顺利切换不同难度模式,每个模式的倒计时和图标数量不同,增加了挑战性。
- 提示与撤销功能:在适当时机使用提示与撤销功能,确保游戏更加有趣和具有可玩性。
- 时间倒计时与结束判定:确保倒计时结束后游戏能正确判定胜负,并显示结果页面。
游戏体验流畅,难度适中,具备较好的扩展性。
4. AIGC 任务表格
子任务 | 借助何种 AIGC 技术 | 实现了什么功能 | 效果如何 |
---|---|---|---|
主菜单设计 | ChatGPT4 | 提供了绘制菜单页面的建议 | 生成的代码结构清晰,减少了手动编写时间 |
图标摆放逻辑 | ChatGPT4 | 自动生成图标的随机打乱和摆放逻辑 | 自动生成的代码满足要求,减少了错误 |
图像背景生成 | 文心一言 | 生成了游戏所需的图标和背景 | 生成的图像符合游戏需求,提升了视觉效果 |
事件处理 | Copilot | 自动补充了键盘和鼠标事件的处理逻辑 | 提高了开发效率,提供了可靠的事件响应机制 |
提示与撤销功能 | 结合个人代码与 Copilot 建议 | 完善了撤销与提示逻辑 | 功能实现无误,代码结构清晰,符合游戏逻辑需求 |
使用AIGC能免去许多重复性的劳动,帮助我更快完成了基础游戏框架的搭建。
除此之外,也能解决一些繁琐的底层问题,例如图标和背景的生成。
5. PSP 表格
PSP 阶段 | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|
计划 | 30 | 20 |
需求分析 | 60 | 50 |
设计 | 90 | 80 |
代码实现 | 240 | 260 |
测试 | 60 | 50 |
报告撰写 | 60 | 45 |
总计 | 540 | 505 |
PSP 分析
通过 PSP 表格记录的预估时间和实际时间,可以看出开发过程中实际时间略长于预估时间,主要原因在于游戏逻辑的调试和功能扩展部分耗时较长,而代码实现和测试阶段也遇到了一些不可预见的问题。