软件工程第二次作业
这个作业属于哪个课程 | < https://edu.cnblogs.com/campus/fzu/SE2024> |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/SE2024/homework/13253 |
这个作业的目标 | 学着利用AIGC用python编写羊了个羊类似小游戏,学会用ai辅助写代码 |
学号 | 102201315 |
一.项目展示:Github仓库链接:https://github.com/kk1225-clt/kk1225-clt/blob/main/消了个消 | |
二.项目介绍: | |
利用aicg生成独特的照片运用于游戏。 | |
并且利用ai辅助实现小游戏的开发与进行。 | |
实现思路:1. 游戏结构设计 | |
程序主要实现了一个图案消除类的游戏,玩家需要通过选择匹配的图案来获得分数。游戏的结构主要包括初始化、游戏主循环、用户输入处理、图案生成和消除逻辑等模块。 |
- 初始化设置
Pygame初始化:使用 pygame.init() 初始化 Pygame 库。
难度设置:定义不同的难度级别,包括游戏时间、每个位置的图案数量和炸弹使用限制。
常量定义:设定游戏窗口的尺寸、图案大小、颜色、字体等。 - 图像加载
图案和炸弹图像:通过加载指定路径的图像文件并进行缩放,准备游戏中所需的图案和炸弹图标。 - 游戏板生成
游戏板:创建一个二维列表(board),每个元素包含图案堆栈。图案的数量和类型根据当前难度随机生成。 - 游戏主循环
事件处理:通过 pygame.event.get() 获取用户输入(如点击鼠标),判断是否选择图案或使用炸弹。
图案消除:当玩家选择了两个图案时,判断这两个图案是否匹配。如果匹配,移除图案并增加分数;如果不匹配,则触发炸弹效果。
胜利和失败检查:在每个循环中检查是否满足胜利条件(所有图案消除)或失败条件(时间用尽或没有可匹配的图案)。 - 界面展示
绘制界面:根据当前游戏状态绘制游戏界面,包括游戏板、分数、计时器和工具栏。
显示胜利或失败界面:在游戏结束时显示相应的界面和消息。 - 函数化设计
通过将功能模块化为多个函数,便于代码的维护和理解。例如,draw_board()、show_end_screen()等函数分别负责绘制游戏板和显示结束界面。
总结
该程序通过事件驱动的方式实现了一个图案消除的小游戏,涵盖了从初始化、游戏逻辑到用户交互的完整流程。模块化设计提高了代码的可读性和可维护性。通过随机生成图案和不同的难度设置,增加了游戏的趣味性和挑战性。
三.测试:
游戏开始界面
简单模式
困难模式
地狱模式
胜利
失败
看广告通过
四.AIGC表格
| 学到的内容 | 具体描述 | 心得体会|
| Pygame库的基本使用 | 学习了如何使用Pygame进行窗口创建、图像加载和事件处理。| Pygame提供了丰富的功能,适合开发2D游戏,初学者友好。|
| 难度设置与游戏平衡| 通过设置不同的难度级别来调整游戏的挑战性和趣味性。 | 游戏平衡是关键,适当的难度可以提升玩家体验。|
| 事件驱动编程 | 理解了如何处理用户输入和游戏事件循环。| 事件驱动模型使游戏能够实时响应用户操作,提高互动性。|
| 图案生成与消除逻辑| 实现了随机生成图案并检测匹配的功能。| 理解了数据结构在游戏中的重要性,灵活使用列表和堆栈。|
| 图形与界面设计| 学习了如何使用图像和文字在窗口中绘制游戏界面。| 界面设计直接影响用户体验,视觉效果很重要。|
| 函数化编程 | 将程序拆分为多个函数,提高了代码的可读性和可维护性。| 模块化设计使得功能清晰,便于调试和扩展。|
| 时间管理与计时器| 学会了如何使用Pygame的时间功能来限制游戏时间。 | 计时器的设计增加了游戏的紧迫感,使玩家更加投入。|
| 错误处理与调试 | 学习了如何捕获和处理加载图像等过程中可能出现的错误。| 及时的错误处理可以提高程序的稳定性和用户体验。|
五.PSP表格
任务 预估耗时 (小时) 实际耗时 (小时) 完成情况 评价与分析
需求分析 2 2 完成 需求明确,理解清晰。
界面设计 3 4 完成 设计过程中多次修改,最终效果满意,但时间超出预期。
游戏逻辑实现 5 6 完成 逻辑实现顺利,但遇到一些边界条件问题,需改进调试能力。
图像加载与处理 2 1.5 完成 图像加载顺利,优化了加载速度。
测试与修复 3 4 完成 测试覆盖面不够,需要在未来增加测试用例的数量。
文档编写与总结 2 2.5 完成 文档编写过程流畅,但总结部分较为简略,可以更详细。
2.完成过程和最终效果评价
2.1完成情况:大部分任务按时完成,但部分任务因复杂性超出预期。
2.2做得好的地方:
需求分析阶段做得非常好,明确了项目的基本功能和要求。
图像加载与处理部分效率高,提升了游戏体验。
2.3改进的地方:
界面设计阶段耗时较长,未来可以在设计前多做一些原型或草图,以减少修改次数。
在游戏逻辑实现时,提前考虑边界条件和异常情况,可以减少后续调试的时间。
测试环节需要更多的计划与时间分配,确保覆盖更多的用例,提升软件质量。
2.4总结
通过PSP表格的记录,可以更清晰地了解各任务的耗时情况,并对整个项目的进度和质量进行有效的反思。未来的项目中,将继续运用这种方法进行任务分解和时间管理,以提高工作效率和项目质量。