软件工程第二次个人作业
软件工程 | https://edu.cnblogs.com/campus/fzu/SE2024 |
---|---|
作业要求 | https://edu.cnblogs.com/campus/fzu/SE2024/homework/13253 |
作业目标 | 与AI合作生产羊了羊小游戏 |
学号 | 102202136 |
项目展示:基于Pygame的Match-Three游戏
仓库链接:https://github.com/guanyibei-ur/guanyibei-ur/tree/main
1. 游戏功能实现
界面设计
使用Pygame库设计游戏界面,包括主菜单、游戏界面和结束界面
主色调:在游戏的设计中,我将背景定位冰岛海景,黑与白水乳交融,浑然天成。而游戏卡片则以水果和中秋主题为主,色彩鲜艳,灵动活泼,同时也便于区分。
菜单
难度选择:分为简单,一般和困难。不同的难度对应不同的堆叠方式。
简单模式
一般模式
困难模式
游戏结束画面:
玩法介绍
1.实现图案的生成与分层摆放,确保图案能够被合理匹配和消除: 与“羊了个羊”差不多,多图层随机摆放,被覆盖的灰色图片不可以点击。
2.玩家通过点击选择图案并消除,当所有图案被消除时游戏结束: 点击图案移入收集框,三个相同的可以消除
3.设置倒计时机制,时间结束或框满时游戏失败: 倒计时180秒,收集框上限为7.
4.难度设置:不同难度,卡牌的堆叠方式不同
设置三种不同的模式“简单”、“一般”、“困难”
特色功能
倒计时器:游戏开始时,倒计时器会启动。如果时间耗尽,游戏将结束并显示失败消息。这一功能增强了游戏的紧张感和挑战性。
撤回按钮:在游戏界面添加了一个撤回按钮,点击后可以恢复最近的一次操作,增加玩家的容错率。
难度设置:不同难度,卡牌的堆叠方式不同
素材来源:
2.技术与算法实现
技术实现
游戏逻辑:使用Python编写游戏逻辑,通过Pygame库管理游戏的渲染和事件处理。实现了游戏的核心功能,包括卡片的匹配、分数统计和游戏状态管理。
算法设计:采用随机生成算法保证游戏中的卡片布局,同时确保每种类型的卡片数量为3的倍数,以便实现匹配功能。算法中加入了检查机制,以防止生成的卡片数量与游戏网格不匹配的问题。
特殊算法
1. 图片随机分布算法
描述:
这个算法用于在游戏网格中随机分布图像,并确保每种图像的数量是3的倍数,同时处理空白插槽。
实现步骤:
生成图像列表: 根据图像类型和数量生成一个图像列表,其中每种图像的数量都是3的倍数。
随机分布: 使用随机打乱列表的方式,将图像和空白插槽随机分布到网格中。
3.测试样例与结果
功能测试:对游戏的各项功能进行测试,包括撤回按键、倒计时器。确保每个功能都能够按预期工作。
用户体验测试:邀请玩家进行试玩,收集他们的反馈和建议,以便进一步优化游戏体验。
测试结果
功能测试:所有核心功能运行正常,没有发现重大Bug。
用户体验测试:玩家反馈游戏界面简洁明了,操作直观,倒计时器和撤回按钮的设计得到了好评。
4. AIGC使用感想
在项目开发过程中,我使用了AIGC工具来生成游戏中的图像和设计元素。以下是对这些工具的总结和感想:
优点:
效率高:AIGC工具能够快速生成代码以实现特定功能,大大节省了手动设计的时间。
激发创意:自动生成的设计提供了多样化的创意选择,有助于突破传统设计思维。
操作简单:只需告诉AIGC需求能够快速获得解决方法。
缺点:
理解不足:有时生成的设计与预期存在差距,需要进一步调整以符合实际需求。
同类化严重:生成的设计可能与其他用户的设计类似
AIGC表格任务
子任务 | 借助何种AIGC技术 | 实现了什么功能 | 效果 |
---|---|---|---|
游戏逻辑设计 | AIGC代码生成(如GitHub Copilot) | 生成游戏的基本逻辑代码,包括图像匹配、计时等功能 | 效果良好,减少了开发设计时间 |
图像生成和处理 | AIGC图像生成(如DALL·E) | 创建游戏中的图片,如游戏图标、背景等 | 图像质量较高,能够快速生成多样化的图像 |
游戏优化建议 | AIGC优化建议(如AI-powered analytics) | 提供游戏优化的建议和改进方案 | 提供了有用的优化建议,但最终的实施和验证还需要开发者的判断和调整 |
5. PSP表格与任务分解
任务 | 时间预估 | 实际耗时 | 评价 |
---|---|---|---|
需求分析 | 2小时 | 2.5小时 | 需求分析准确,但时间略超出预期 |
设计与实现 | 3小时 | 3小时 | 实现过程顺利,设计符合预期 |
测试与优化 | 1.5小时 | 1小时 | 测试全面,优化及时,提前完成 |
文档编写与总结 | 1小时 | 1.5小时 | 文档编写详细,略超出时间预估。 |
评价
项目完成情况:整体上,项目按时完成且质量有保证,虽然在文档编写阶段略有延迟。
改进建议:未来在项目规划阶段,可以更精确地预估时间。
6.学习心得记录
项目学习记录表格
技术/算法 | 具体内容 | 学到的知识 | 心得体会 |
---|---|---|---|
Pygame | 游戏开发框架,处理图像、声音和用户输入 | 学会了如何使用Pygame创建游戏界面、处理用户输入和绘制图形 | Pygame 简单易用,但需要注意性能优化,特别是在图像处理和事件处理上 |
随机分布算法 | 用于随机分布图像并确保每种图像数量为3的倍数 | 理解了如何处理和生成随机分布的数据 | 随机算法的设计需要考虑边界条件,确保生成的数据符合游戏逻辑 |
倒计时管理 | 实现游戏倒计时功能,记录游戏时间 | 学会了如何在游戏中实现计时器和处理时间到期的逻辑 | 倒计时功能对游戏体验至关重要,需要确保逻辑准确并处理好超时情况 |
匹配算法 | 查找并消除相邻的相同图像 | 掌握了广度优先搜索(BFS)或深度优先搜索(DFS)在图像匹配中的应用 | 图像匹配的效率和准确性直接影响游戏体验,需要精心设计和优化 |