这个作业属于哪个课程 | 软件工程2024(福州大学-计算机与大数据学院) |
---|---|
这个作业要求在哪里 | 2024秋软件工程个人作业(第一次) |
这个作业的目标 | 和AIGC合作实现游戏的基本功能 |
学号 | 102201342 |
1.项目展示
https://github.com/kentozakiki/kento
2.项目介绍
2.1项目名称:yummy
2.2界面设计
主菜单
关卡选择页面
游戏界面
三个关卡以游戏时间划分难度,分别是60s,50s,40s
进入游戏后卡片随机摆放,连续三个一致的图案才能进行消除,下方的卡槽最多只能放置6个图案。每个卡片都有多层,第一层被点击后下面一层会出现。
胜利界面
失败界面
3.游戏逻辑
- 初始化和设置常量:
- 初始化Pygame库。
- 定义游戏窗口的大小、图块大小、图块数量、图块间隔、最大卡槽数、帧率等常量。
- 设置颜色常量。
- 加载资源:
- 创建游戏窗口。
- 加载并缩放食物图案图片,存储在patterns列表中。
- 加载并缩放菜单背景和游戏板背景图片。
- 游戏逻辑初始化:
- 定义添加新图块的add_new_tile函数。
- 定义生成游戏板的generate_blocks函数,并生成初始的游戏板。
- 初始化游戏状态变量,如game_active、time_left、start_time、game_result等。
- 绘制UI元素:
- 定义绘制圆角矩形的draw_rounded_rect函数。
- 定义绘制按钮的draw_button函数。
- 定义绘制菜单、关卡选择界面、游戏板、倒计时、卡槽和结果界面的函数。
- 游戏主循环:
- 在主循环中,处理事件(如退出游戏、鼠标点击等)。
- 如果游戏未激活,显示菜单或关卡选择界面。
- 如果游戏激活,更新游戏状态,绘制游戏板、卡槽和倒计时。
- 检查并消除卡槽中三个一样的图案。
- 如果游戏结束(胜利或失败),显示结果界面。
- 结束游戏:
- 当用户选择退出游戏或关闭窗口时,结束游戏循环,并调用pygame.quit()来关闭Pygame库。
整个游戏的流程是:初始化 -> 加载资源 -> 开始菜单 -> 选择关卡 -> 游戏进行 -> 游戏结束 -> 重新开始或退出。游戏的主要玩法是通过点击游戏板上的图块,将其添加到卡槽中,并尝试消除三个连续相同的图案,以清空游戏板。游戏有时间限制,如果时间耗尽或卡槽满则游戏失败。
- 当用户选择退出游戏或关闭窗口时,结束游戏循环,并调用pygame.quit()来关闭Pygame库。
4.AICG表格
子任务 | 借助何种AIGC技术 | 实现了什么功能 | 效果如何? |
---|---|---|---|
游戏框架 | chatgpt 4omini | 提供大框架的代码 | 效果很好 |
游戏图片 | 豆包AI | 提供游戏的背景和消除块的图标 | 效果一般,ai有时候生成的图片不符合要求 |
按钮制作 | chatgpt 4omini | 帮助绘制按钮的圆角 | 效果很好,使按钮更漂亮 |
倒计时操作 | chatgpt 4omini | 提供倒计时代码的设计思路 | 效果一般,存在bug |
卡槽中相同样式的检查和删除 | chatgpt 4omini | 提供实现代码 | 效果一般,存在bug,需要调整 |
AICG可以帮我思考框架以及实现方法,还可以帮助我提供有想法但自己无法实现的代码,虽然存在bug,但可以不断修改。
5.PSP表格
PSP 阶段 | 预估耗时(小时) | 实际耗时(小时) |
---|---|---|
规划 | 1 | 1 |
需求分析 | 1 | 2 |
设计游戏 | 2 | 3 |
编写代码 | 10 | 12 |
测试与调试 | 1 | 2 |
撰写博客 | 1 | 1 |
总计 | 16 | 21 |
6.评价与分析
在这次开发小游戏的过程中,我初步了解了python语言,学会使用pygame结合AICG来制作简单的小游戏。在制作的过程中不尽人意,因为自己只是初学者,很多东西都要借助AICG实现,而AICG的理解能力有限,生成的代码也存在bug,不可能一步到位,需要不断调试。我还需继续学习。