软件工程第二次作业
《“羊了个羊”小游戏开发之旅》
一、项目展示
项目代码已上传至 GitHub 仓库:https://github.com/zzsthere/zzsthere。
二、项目介绍
(一)前端设计与特色功能
-
界面设计:
- 使用 Pygame 图形库设计了游戏界面,包括清晰明了的封面、模式选择、游戏界面和结束界面。
- 封面背景、选项图片以及游戏结束背景和选项图片都经过精心挑选和调整大小,以适应屏幕尺寸,为玩家提供良好的视觉体验。
-
特色功能:
- 多种模式选择:提供了简单模式和困难模式,满足不同玩家的需求。简单模式下游戏网格尺寸为 6x6,困难模式为 12x12,增加了游戏的挑战性。
- 视频道具:在游戏中添加了视频道具功能。玩家可以选择使用该道具,位于右上角,点击后会模拟显示观看视频的选项。观看视频结束后,会为游戏增加固定的 60 秒时间,增加了游戏的趣味性和策略性。
![](htt
ps://img2024.cnblogs.com/blog/3516908/202409/3516908-20240918184933419-1412533349.png)
(二)技术与算法
- 技术实现:
- 使用 Python 的 Pygame 库进行游戏开发,实现了游戏的图形界面、交互逻辑和音效播放。
- 通过加载各种图片资源,包括图案、背景、选项图片和道具图片,为游戏增添了丰富的视觉元素。
- 利用 Pygame 的事件处理机制,实现了玩家与游戏的交互,如鼠标点击、模式选择和道具使用等。
- 算法实现:
-
图案生成与分布:为了确保简单模式下图像数量是每一个选定图像的 3 的倍数,使用了特定的算法来调整图像数量。同时,通过随机生成无序且随机分布的图案,并确保图案之间不重叠,实现了游戏图案的合理摆放。
-
消除逻辑:当玩家选择三个相同的图案时,会成功消除并播放消除音效。如果选择的图案不相同,则会将图案放回原位。这种消除逻辑通过遍历选中的图案列表,判断图案是否相同来实现。
-
三、测试
- 测试样例:
- 对游戏的不同模式进行测试,包括简单模式和困难模式,检查图案的生成和分布是否符合预期。
- 测试视频道具功能,点击道具后检查是否正确显示视频选项模拟,并在视频观看结束后是否正确增加时间。
- 测试游戏的消除逻辑,选择不同的图案组合,检查是否能够正确消除或放回原位。
- 测试游戏的结束条件,包括所有图案被消除时游戏胜利和倒计时结束时游戏失败。
- 测试结果:
- 在不同模式下,图案生成和分布合理,没有出现重叠或错误的情况。
- 视频道具功能正常,点击道具后能够模拟显示视频选项,并且在视频观看结束后正确增加了时间。
- 消除逻辑准确,能够正确判断图案是否相同,并进行相应的消除或放回操作。
- 游戏的结束条件能够正确触发,当所有图案被消除时游戏胜利,倒计时结束时游戏失败。
- 测试设计评价:
- 测试用例涵盖了游戏的主要功能和逻辑,能够有效地检查游戏的正确性和稳定性。
- 通过对不同模式、道具功能和消除逻辑的测试,能够发现潜在的问题并及时进行修复。
- 然而,测试用例可能还不够全面,例如没有对游戏的性能进行测试,可能会在大量玩家同时游戏时出现性能问题。
四、AIGC 表格任务
子任务 | 借助何种 AIGC 技术,实现了什么功能 | 效果如何? |
---|---|---|
图案生成与分布 | 未明确使用特定 AIGC 技术,通过手动编写算法实现随机生成无序且随机分布的图案,并确保可完全消除。 | 图案生成合理,分布均匀,能够满足游戏需求。 |
界面设计 | 未明确使用特定 AIGC 技术,使用 Pygame 图形库手动设计游戏界面。 | 界面美观,操作方便,能够为玩家提供良好的视觉体验。 |
视频道具功能 | 未明确使用特定 AIGC 技术,手动编写代码实现视频道具功能,包括点击道具后模拟显示视频选项和增加游戏时间。 | 视频道具功能增加了游戏的趣味性和策略性,效果良好。 |
五、PSP 表格
阶段 | 预估耗时 | 实际耗时 | 评价 |
---|---|---|---|
需求分析 | 1 小时 | 1 小时 | 准确理解了作业要求,明确了游戏的功能和特色。 |
设计 | 2 小时 | 2.5 小时 | 在界面设计和游戏逻辑设计方面花费了一些时间,但最终设计出了合理的方案。 |
编码 | 8 小时 | 10 小时 | 在编码过程中遇到了一些问题,如变量未定义、视频道具功能实现等,但通过查阅资料和调试,最终解决了问题。 |
测试 | 2 小时 | 2 小时 | 测试用例覆盖了游戏的主要功能,发现并修复了一些问题。 |
博客撰写 | 2 小时 | 2 小时 | 详细介绍了项目的各个方面,包括前端设计、技术实现、测试和 AIGC 表格任务等。 |
总体评价:本次作业完成得较为顺利,通过使用 Pygame 库成功实现了“羊了个羊”风格的消除类小游戏,并添加了多种模式选择和视频道具功能。在开发过程中,遇到了一些问题,但通过查阅资料和调试,最终都得到了解决。在未来的开发中,可以进一步优化游戏性能,增加更多的道具和功能,提高游戏的趣味性和挑战性。