软件工程第二次个人作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/SE2024
这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/SE2024/homework/13253
这个作业的目标 使用Python编写一个“羊了个羊”风格的消除类小游戏,合理运用 AIGC 工具提高开发效率,使用文生图工具实现图片设计等工作。
学号 102201211

目录

  1. 项目名称
  2. 项目展示
  3. 项目测试
  4. AIGC图片生成
  5. AIGC子任务表格
  6. PSP表格

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
posted @   小池睡不醒  阅读(61)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示