软件工程第二次作业
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/SE2024/ |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/SE2024/homework/13253 |
这个作业的目标 | 学习通过运用AIGC,使用pygame制作小游戏 |
学号 | 102202153 |
《“小猫日记”游戏》
🎀嘿!让我们一起走进我软件工程第二次作业中的精彩世界——“小猫日记”游戏。💖
一、项目展示
项目代码已经在 GitHub 上啦!🎉链接在此:点击查看。😉
- 安装pygame:
- 游戏展示:
- 开始界面:
- 游戏简介:
- 简单模式:
- 困难模式:
- 游戏成功:
- 游戏失败:
- 开始界面:
- 动画演示:
二、项目介绍
(一)前端设计与特色功能
- 界面设计:
- 😸使用强大的 Pygame 图形库精心打造了游戏的各个界面。从可爱的封面开始,就像打开了一本神秘的日记。模式选择界面简洁明了,让你轻松决定挑战的难度。游戏界面色彩丰富,图案们也都很可爱。💖
- 每一张背景图片、选项图片等都经过精心挑选和调整,以适应屏幕尺寸,给玩家良好的视觉感受。😍
- 特色功能:
- 多种难度模式:🎯有简单模式和困难模式可供选择。简单模式下,游戏网格尺寸小巧可爱,为 6x6,非常适合新手小伙伴们练手。困难模式则是勇敢者的挑战,12x12 的网格充满了未知与挑战,等你来征服!💪
(二)技术与算法
- 技术实现:
- 🐾利用了 Python 的 Pygame 库,实现游戏的图形界面、交互逻辑和音效播放。💫
- 通过加载各种可爱的图片资源,图案们变得栩栩如生,背景、选项图片和道具图片也为游戏增添了丰富的视觉元素。🌈
- 利用 Pygame 的事件处理机制,玩家与游戏之间的互动变得轻松自然。鼠标点击、模式选择、道具使用等都很流畅。🗣️
- 算法实现:
- 图案生成与分布魔法:为确保简单模式下图像数量是每一个选定图像的 3 的倍数,采用特定算法调整图像数量。同时,随机生成无序且不重叠的图案,合理摆放游戏图案。🧙♀️
- 消除逻辑大揭秘:当玩家选择三个相同图案时,成功消除并播放音效;若图案不同,则放回原位。通过遍历选中图案列表判断是否相同,实现消除逻辑。
🕵️♂️
三、测试
- 测试样例:
- 🏃♂️对游戏的不同模式进行了严格的测试,简单模式和困难模式都要经受考验。检查图案的生成和分布是否符合预期。🎨
- 消除逻辑测试更是不能马虎。选择不同的图案组合,看看游戏是否能够准确地消除或放回原位。🧩
- 游戏的结束条件也必须严格把关。当所有图案被消除时,游戏是否能胜利欢呼?倒计时结束时,游戏是否会遗憾失败?这一切都需要仔细检查。🎉
- 测试结果:
- 😃在不同模式下,图案生成和分布非常合理,没有出现重叠或错误的情况。🧐
- 消除逻辑准确,能正确判断图案是否相同并进行相应操作。🧙♂️
- 游戏的结束条件能够正确触发,当所有图案被消除时,胜利的喜悦扑面而来;倒计时结束时,也能坦然接受失败,准备下一次挑战。💪
- 测试设计评价:
- 🎯测试用例涵盖了游戏的主要功能和逻辑,能够有效地检查游戏的正确性和稳定性。🛡️
- 通过对不同模式、道具功能和消除逻辑的测试,我们能够像侦探一样发现潜在的问题,并及时进行修复。让游戏变得更加完美。🕵️♂️
- 不过,测试用例可能还不够全面哦。比如,没有对游戏的性能进行测试,可能会在大量玩家同时游戏时出现性能问题,我们需要在未来的开发中更加注意这个问题。👾
四、AIGC 表格任务
序号 | 借助 AIGC 技术学习内容 | 学习体会 |
---|---|---|
1 | Pygame 库的使用 | 通过使用 Pygame 库,深入了解了如何创建简洁而富有吸引力的 2D 游戏界面。能够熟练地加载各种图像资源,为游戏赋予丰富的视觉元素,同时也掌握了处理用户输入以及播放音效的方法。这一过程让我体会到 Pygame 的强大实用性,为游戏开发提供了坚实的基础。 |
2 | 图案生成与分布 | 未明确使用特定 AIGC 技术,通过手动编写算法实现随机生成无序且随机分布的图案,并确保可完全消除。 |
3 | 图标点击与消除逻辑 | 实现图标点击和消除算法的过程,让我深刻理解了如何有效地管理游戏对象的状态与交互。在设计和实现这些逻辑的过程中,我体会到了清晰的逻辑结构在游戏开发中的核心地位。只有准确地判断图标点击的有效性,并合理地处理消除逻辑,才能为玩家提供富有挑战性和趣味性的游戏体验。 |
4 | 时间与倒计时机制 | 学习如何在游戏中实现时间管理,特别是倒计时功能,让我对游戏进程的控制有了更深入的认识。通过精确地计算时间和合理地设置倒计时,能够为玩家营造紧张刺激的游戏氛围,同时也增加了游戏的难度和挑战性。这一过程提升了我对游戏节奏和时间把控的能力。 |
5 | 界面设计 | 使用 Pygame 图形库手动设计游戏界面。界面美观,操作方便,提供良好视觉体验 |
6 | 音效管理与互动 | 为不同操作添加音效后,游戏的互动性得到了极大的增强。我深刻体会到了声音在游戏体验中的重要作用。通过合理地选择和运用音效,能够为玩家营造更加真实和生动的游戏环境,提高玩家的沉浸感和参与度。 |
五、PSP 表格
阶段 | 预估耗时 | 实际耗时 | 评价 |
---|---|---|---|
计划 | 1小时 | 1小时 | 在计划阶段,对项目的整体开发时间进行了合理的预估,并制定了详细的开发计划。明确了每个阶段的主要任务和时间节点,为项目的顺利进行奠定了基础。 |
需求分析 | 1 小时 | 1 小时 | 准确理解作业要求,明确游戏功能和特色 |
设计 | 2 小时 | 2.5 小时 | 在界面设计和游戏逻辑设计上花费时间,最终方案合理 |
编码 | 8 小时 | 10 小时 | 编码过程中遇到问题,通过查阅资料和调试解决 |
测试 | 2 小时 | 2 小时 | 测试用例覆盖主要功能,发现并修复问题 |
博客撰写 | 2 小时 | 2 小时 | 详细介绍项目各方面,包括前端设计、技术实现、测试和 AIGC 任务等 |
总结与反思 | 1小时 | 1小时 | 在总结与反思阶段,对开发过程中的问题与经验进行了总结,并提出了改进方向。这一过程顺利完成,时间与预期相符。 |
总体评价
本次作业顺利完成,通过 Pygame 库实现了 “小猫日记” 风格的消除类小游戏,并添加了多种模式选择和神秘道具功能。开发过程中虽遇到问题,但都得以解决。未来可进一步优化游戏性能,增加更多道具和功能,提高游戏趣味性和挑战性。💖