这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/SE2024 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/SE2024/homework/13253 |
这个作业的目标 | 学会使用aigc编写学习代码,明白aigc能做哪些不能做哪些 |
学号 | 102201425 |
1. 项目展示
1.1. GitHub 仓库链接
ruangong
2. 项目介绍
这个项目是一个使用 Pygame 库开发的“开心消消乐”风格的桌面小游戏。游戏的目标是通过点击相同的图案来消除它们,从而获得分数。
3. 前端设计
3.1. 游戏界面
- 尺寸:600x600 像素的正方形游戏区域
- 布局:6x6 格子布局,每个格子 100x100 像素
3.2. 图案设计
- 使用
pygame.image.load
加载并缩放图案以适应每个格子
3.3. 按钮设计
- 提供“Easy”、“Medium”、“Hard”三种难度选择
- 包含“Replay”和“Exit”按钮
3.4. 字体和颜色
- 使用 36 号字体显示得分、最高分和按钮文本
- 文本颜色与背景颜色形成对比,确保高可读性
3.5. 动画和视觉效果
- 图案匹配成功时提供视觉反馈,如图案消失动画
4. 特色功能
- 难度选择:不同难度对应不同的时间限制
- 计时器:倒计时功能,增加游戏紧迫感
- 得分和最高分系统:实时更新得分,并记录最高分
- 重玩机制:游戏结束后,提供立即开始新一轮游戏的选项
5. 技术和算法
- Pygame 库:用于图形显示、事件处理和游戏逻辑
- 图案匹配算法:通过数组和索引跟踪图案位置,检查匹配
- 随机化算法:使用
random.shuffle
方法打乱图案顺序 - 文件操作:使用
json
模块保存和加载最高分
6. 实现思路
- 初始化游戏环境:设置窗口大小、加载资源、初始化变量
- 游戏循环:处理事件、更新状态、绘制界面、刷新屏幕
- 事件处理:响应鼠标点击,进行图案匹配检查
- 游戏状态管理:根据当前状态渲染界面元素
- 得分和时间管理:更新得分,检查并更新最高分
7. 测试
-
开始界面:展示游戏标题和难度选择按钮
-
游戏界面:显示游戏区域和时间限制
-
结束界面:显示得分和最高分,提供重玩或退出选项
-
测试评价:测试基本完成了所有功能的测试,满足程序测试需求。
aigc表格:
学到的内容 | 心得体会 |
---|---|
Pygame 库的使用 | 掌握 Pygame 库是开发 2D 游戏的基石,提供了丰富的功能和简便的接口。 |
游戏逻辑设计 | 游戏逻辑是游戏的灵魂,需要精心设计以确保游戏的趣味性和可玩性。 |
图形和动画 | 良好的视觉效果可以极大地提升玩家的游戏体验。 |
用户界面设计 | 直观的用户界面对于玩家理解和享受游戏至关重要。 |
文件读写操作 | 学会如何在游戏中保存和加载数据是提供持久游戏体验的关键。 |
随机化算法 | 随机性是增加游戏重玩价值和挑战性的有效手段。 |
代码组织和模块化 | 良好的代码结构使得项目易于管理和扩展,是团队协作和大型项目开发的前提。 |
持续学习 | 技术不断进步,持续学习新技术对于个人成长和适应行业变化至关重要。 |
耐心和毅力 | 游戏开发是一个复杂且耗时的过程,需要耐心和毅力来克服挑战。 |
代码复用和模块化 | 良好的代码组织能够提高开发效率,减少重复劳动,便于未来的维护和扩展。 |
小任务 | 预估利用 AIGC | 实际利用 AIGC | AIGC 优点 | AIGC 缺点 | 适合应用方面 | 不适合实现功能 |
---|---|---|---|---|---|---|
游戏界面设计 | 是 | 是 | 快速生成草稿,提高效率 | 可能缺乏创新性和个性化 | - | 用户界面设计 |
图形和图像生成 | 是 | 是 | 自动生成多样化图案,节省美术资源 | 可能缺乏独特性和艺术感 | 图像生成、游戏美术 | 定制化美术设计 |
游戏测试和调试 | 是 | 是 | 能快速指出程序错误地方 | 修改错误不够完美,无法直接修改成功 | 简单的程序修改 | 软件测试 |
游戏逻辑设计 | 是 | 是 | 能快速生成差不多的框架 | 具体逻辑无法实现,需要人为修改 | 快速生成框架 | 做具体细节 |
psp表格:
任务描述 | 预估耗时(小时) | 实际耗时(小时) |
---|---|---|
需求分析 | 2 | 2 |
设计游戏界面 | 10 | 8 |
开发图案匹配逻辑 | 5 | 8 |
实现计时器功能 | 1 | 1 |
实现得分和最高分系统 | 3 | 4 |
设计并实现重玩机制 | 2 | 1 |
测试游戏功能 | 4 | 2 |
优化和调试 | 2 | 4 |
打包和发布 | 1 | 0.5 |
个人评价
初次触及Python及关联库,本项目主要依靠AI辅助生成代码。在理解及修改代码的过程中,多次与AI进行互动。虽然过程曲折,但最终成果尚可。未来在明确AI辅助的具体实现方面有待提高。