软件工程第二次个人作业
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/SE2024 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/SE2024/homework/13253 |
这个作业的目标 | 使用Python编写一个“羊了个羊”风格的消除类小游戏,合理运用 AIGC 工具提高开发效率,使用文生图工具实现图片设计等工作。 |
学号 | 102201211 |
目录
1. 项目名称:Sheep a Sheep
github作业仓库链接:https://github.com/chijiayi03/chijiayi03/tree/main
2. 项目介绍
2.1 主界面
界面介绍:主界面的背景图为menu_background,绿色字体为游戏的名称"Sheep a Sheep",黄色字体为游戏的难度选项,红色字体为游戏的开始选项,玩家需先选择游戏的难度后点击"Start Game"方可开始游戏,黑色字体为游戏的退出选项。
2.2 游戏界面
Level 1:
Level 2:
Level 3:
游戏有三种难度可供玩家选择,三种难度的区别在于需要消除图片的数量不同以及游戏时间不同。
2.3 成功界面
当玩家成功通过该游戏,游戏会显示获胜界面:界面显示"You Won! Congratulations."玩家可以选择点击"Restart"重新开始游戏,或者选择点击"Exit"退出游戏。
2.4 失败界面
当玩家未能在限定时间内通过该游戏,游戏会显示失败界面:界面显示"Time's Up! Game Over."玩家可以选择点击"Restart"重新开始游戏,或者选择点击"Exit"退出游戏。
2.5 附加功能
- 创建游戏状态栈,实现撤销操作的功能(游戏中按Z键实现)。
- 设置了三种不同难度的游戏,可供玩家自由选择。
2.6 项目细节
-
游戏有不同的难度级别,玩家可以选择不同的关卡进行游戏。
-
游戏包含了撤销功能,允许玩家撤销上一步的选择。
-
游戏使用了三层图案叠加的设计,增加了游戏的复杂度。
-
游戏有计时器,玩家需要在限定时间内完成匹配。
3. 项目测试
3.1 测试样例
3.2 测试结果
测试结果表明可以正确生成游戏主界面,并且背景图、文本对象及位置均符合预期要求。
3.3 设计评价
1.结构清晰:代码结构相对清晰,主循环、事件处理、绘制背景、渲染文本和更新屏幕等部分都分开处理,易于理解。
2.代码组织:虽然代码结构相对清晰,但可以考虑将字体创建、文本渲染和事件处理等功能封装到单独的函数或类中,以提高代码的可读性和可维护性。
4.AIGC图片生成
通过使用AIGC工具生成了六张游戏 UI图案、游戏主菜单背景图片、游戏背景图片以及游戏结束背景图片。
5.AIGC子任务表格
子任务 | 借助的AIGC技术,实现的功能 | 效果 |
---|---|---|
主界面设计 | 通过main_menu函数展示主菜单背景图,并实现了点击开始游戏、退出游戏以及选择不同关卡的功能。 | 完成 |
加载图案图片、背景图片 | 使用Pygame加载主菜单背景图、主游戏背景图、图案图片以及游戏结束时的背景图片。 | 完成 |
添加关卡选择和难度调整 | 通过LEVELS字典定义了不同关卡的设置,包括行数、列数、图案尺寸和游戏持续时间等。 | 完成 |
图案生成和分层摆放 | 通过generate_patterns函数生成图案,并在游戏重置时调用layer_tiles函数进行图案的分层摆放。 | 完成 |
游戏状态的保存和恢复 | :通过游戏状态栈game_states,实现了撤销操作,即按下 Z 键时撤销上一步操作。 | 完成 |
游戏主循环 | 在游戏循环中处理鼠标点击事件、检查匹配和消除、检查游戏是否结束,以及显示游戏界面和剩余时间等功能。 | 完成 |
游戏结束界面 | 在游戏结束时显示游戏结束界面,包括显示背景图、游戏结果提示、重新开始和退出游戏等操作。 | 完成 |
心得体会:把游戏的不同部分拆分成独立的函数,代码更易读,也便于调试和后续的更新。使用了文字和按钮的设计,这提升了游戏的视觉效果,同时也增加了用户友好性。在加载资源或执行关键操作时,加入适当的错误捕获机制,可以让程序在遇到问题时表现得更为稳定。确保所有加载的资源(图片和文字)都在不再需要时得到适当释放,以避免不必要的内存占用。
6. PSP表格
以下为PSP表格,包含任务阶段、预估耗时、实际耗时:
任务阶段 | 预估耗时(hours) | 实际耗时(hours) |
---|---|---|
项目需求分析 | 1 | 0.75 |
构建逻辑模型及编写框架 | 0.75 | 1 |
相关内容学习 | 3 | 2.5 |
AIGC图片生成 | 0.5 | 0.5 |
项目开发及编写代码 | 10 | 11.5 |
调试与修改 | 2 | 4 |
测试 | 1 | 0.5 |
提出并实现优化方案 | 2 | 2.5 |
复盘与总结 | 1 | 1 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了