软件工程第二次个人作业

软件工程 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)在图像匹配中的应用 图像匹配的效率和准确性直接影响游戏体验,需要精心设计和优化
posted @ 2024-09-18 23:19  关忆南北  阅读(11)  评论(0编辑  收藏  举报