软件工程第二次作业
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/SE2024 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/SE2024/homework/13253 |
这个作业的目标 | 学习利用AIGC工具进行辅助编程和做小游戏 |
学号 | 102201511 |
项目展示
Github仓库链接:https://github.com/tengenf/tengenf
一.项目介绍
该游戏是一个羊了个羊的简单版本,游戏设置有普通和困难2个模式,普通模式下,2张相同的牌进入卡槽且相邻,就会消除这2张牌。困难模式下,要3张相同且相邻的卡牌进入卡槽,才会消除。
卡堆分为4层,被上一层卡牌遮盖的卡牌不可选中,同时,被上面一层卡牌完全遮盖的卡牌的信息是位置的。该游戏同样也设置了倒计时功能,时间一到 未完成的话,就会判定为失败。还有一个额外的游戏道具
如果你卡堆快满了,你可以点击清理按钮,让卡牌从卡堆里面出来,再重新放置。
二.界面设计
1.主界面
2.游戏界面
3.道具效果
普通模式和困难模式所不同的就是,消除的条件不同,普通模式要2个相同的图片,而困难模式要3个相同的图片
结算画面
失败时:
成功时:
三.AIGC子任务表格以及项目的学习表格:
AIGC子任务表格
任务 | 子任务 | 状态 | 备注 |
---|---|---|---|
初始化游戏环境 | 设置Pygame环境 | 完成 | 包括初始化窗口和基本配置 |
定义游戏属性 | 完成 | 包括标题、尺寸、帧率等 | |
加载资源 | 完成 | 包括图像、字体等 | |
游戏逻辑开发 | 难度选择 | 完成 | 实现难度选择界面和逻辑 |
牌类定义 | 完成 | 定义卡牌属性和行为 | |
游戏状态更新 | 完成 | 包括时间更新和输赢判断 | |
鼠标交互 | 完成 | 实现点击卡牌和道具的逻辑 | |
消除逻辑 | 完成 | 根据难度实现卡牌消除规则 | |
UI设计 | 游戏界面绘制 | 完成 | 包括背景、卡牌、道具等绘制 |
结果显示 | 完成 | 显示游戏结束、胜利或失败 | |
倒计时显示 | 完成 | 显示游戏剩余时间 | |
用户体验优化 | 待开始 | 根据反馈优化游戏体验 |
项目学习表格
学习内容 | 任务描述 | 完成情况 | 收获与反思 |
---|---|---|---|
Pygame 基础 | 学习如何使用 Pygame 库进行游戏开发 | 完成 | 掌握了 Pygame 的基本操作,如窗口创建、事件处理、图像加载和显示 |
面向对象编程 | 设计和实现游戏中的角色和对象 | 完成 | 通过创建 CustomTile 类,加深了对面向对象编程的理解 |
事件驱动编程 | 实现鼠标点击和键盘操作的响应 | 完成 | 学会了如何处理用户输入,提升了交互设计的技巧 |
图形和动画 | 制作和使用游戏内的图形和动画效果 | 进行中 | 正在学习如何优化游戏视觉效果,提高用户体验 |
游戏逻辑设计 | 设计游戏规则和逻辑 | 完成 | 通过设计卡牌消除规则,锻炼了逻辑思维和问题解决能力 |
难度调整机制 | 实现不同难度级别的游戏玩法 | 完成 | 理解了如何根据不同玩家的需求调整游戏难度 |
资源管理 | 管理游戏中的资源,如卡牌和道具 | 完成 | 学习了如何有效管理和优化游戏资源的使用 |
测试与调试 | 测试游戏功能并修复发现的问题 | 进行中 | 在测试过程中发现了一些bug,正在学习如何系统地进行测试和调试 |
用户界面设计 | 设计直观易用的游戏界面 | 完成 | 通过设计游戏界面,提高了对用户体验的认识 |
游戏优化 | 根据测试反馈优化游戏性能 | 待开始 | 计划学习更多关于性能优化的知识,以提升游戏运行效率 |
文档编写 | 编写游戏使用说明和开发文档 | 待开始 | 意识到文档对于玩家和开发者都非常重要,计划开始编写 |
PSP表格
学习阶段 | 任务描述 | 预计学习时间 | 实际消耗时间 | 备注 |
---|---|---|---|---|
环境搭建 | 配置Pygame开发环境 | 1小时 | 1小时30分钟 | 包括安装Pygame和配置IDE |
基础学习 | 学习Pygame基础知识 | 3小时 | 4小时 | 主要包括事件处理、图像加载和基本的游戏循环 |
面向对象编程 | 设计游戏对象和类结构 | 2小时 | 3小时 | 设计了CustomTile类和游戏的基本框架 |
游戏逻辑开发 | 实现游戏核心逻辑 | 6小时 | 7小时 | 包括卡牌生成、消除逻辑和难度设置 |
图形和界面设计 | 设计游戏界面和加载图像资源 | 4小时 | 5小时 | 加载了背景、卡牌和道具图像,设计了游戏界面布局 |
事件处理 | 实现鼠标和键盘事件处理 | 3小时 | 4小时 | 实现了点击卡牌和使用道具的交互逻辑 |
测试与调试 | 测试游戏功能并修复bug | 5小时 | 6小时 | 发现并修复了一些逻辑和显示错误 |
文档编写 | 编写游戏使用说明和开发文档 | 2小时 | 2小时 | 编写了简单的游戏规则说明和开发文档 |
总结与反思 | 回顾整个开发过程并总结经验 | 1小时 | 1小时30分钟 | 分析了开发过程中的成功点和需要改进的地方 |
总计预计时间:31小时
总计实际消耗时间:36小时30分钟
四.心得体会
通过本次项目,我深入学习了Pygame库,掌握了游戏窗口的创建、事件处理、图形渲染等关键技术。在面向对象编程方面,我设计了卡牌类,实现了卡牌的属性和行为管理。此外,我还学习了如何实现游戏逻辑,包括卡牌的生成、选择、消除以及游戏胜负的判断。通过设置倒计时和道具系统,我进一步理解了游戏机制的复杂性。在图形和界面设计方面,我通过加载和绘制图像资源,提升了游戏的视觉体验。最后,通过测试和调试,我学会了如何发现并修复游戏中的问题,确保了游戏的稳定性和可玩性