软件工程第二次作业
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/SE2024 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/SE2024/homework/13253 |
这个作业的目标 | 利用 AIGC 工具实现羊了个羊风格小游戏的代码编写和图片设计 |
学号 | 102201235 |
1. 项目名称:猫了个鼠小游戏
github作业仓库链接:https://github.com/ikunzeng/maoshu
2.项目介绍
2.1 主界面
界面介绍:主界面的背景图为猫和老鼠背景图,有开始游戏,退出游戏,查看排行榜,开启/关闭bgm的选项。
2.2 游戏界面
游戏模式共有36张图片,规定用时30s内完成,并在完成游戏时,出现恭喜通关的界面,并记录游戏用时,在排行榜上排名。
2.3 结束界面
2.2.3.1 成功界面
游戏获胜后会弹出恭喜通关提示,同时记录用时到排行榜。
2.2.3.2 失败界面
游戏失败后会弹出提示且需要手动返回桌面,而且也会记录结果到排行榜
2.4 排行榜
排行榜能对游戏通关用时进行排序,用时越少排名越高,只记录前三名
2.5 项目细节
2.5.1游戏加载
2.3.2 游戏检查和重置
2.3.3 主游戏循环
3 项目测试
3.1 测试样例
3.2 测试结果
开始时游戏测试很顺利,能正确显示主菜单的开始游戏、查看排行榜、等功能,但是后面想加入困难模式,游戏总是闪退,找不到原因,最后放弃。
3.3 设计评价
1.可读性强:可以轻松阅读代码并根据需求进行功能的增删改
2.模块化一般:主要是集成性代码,容易在修改过程中对整个源码产生影响和bug
3.通过aigc在代码中增加了一些可以更改的空间
4 AIGC子任务表格
子任务 | 借助的AIGC技术,实现的功能 | 效果 |
---|---|---|
解决匹配问题 | chatgpt给出的check_match函数解决了匹配错误的问题。 | 完成 |
字体 | chatgpt给出Microsoft YaHei UI字体来解决中文无法显示的问题。 | 完成 |
游戏状态重置 | 游戏结束时倒计时无法重置,并且重新开始游戏卡顿chatgpt给出reset_game_state函数。 | 完成 |
游戏排行榜读取 | 排行榜读取总是错误chatgpt给出load_leaderboard函数。 | 完成 |
5 PSP表格
任务阶段 | 预估耗时(hours) | 实际耗时(hours) |
---|---|---|
项目需求分析 | 1 | 0.5 |
游戏框架搭建 | 3 | 3.5 |
图形和音效集成 | 3 | 1.5 |
具体功能实现 | 10 | 13 |
附加功能实现 | 3 | 5 |
调试与修改 | 3 | 5 |
编写博客文章 | 1 | 1 |
6 个人评价
6.1可取之处
1.代码结构清晰:代码按照功能划分成了多个函数,如 load_patterns, prepare_board, draw_board, check_match 等,这使得代码易于理解和维护。
2.代码使用常量:通过定义常量来管理游戏参数,例如 WIDTH, HEIGHT, TILE_SIZE_NORMAL, TILE_SIZE_HARD 等,这使得调整游戏设置变得更加容易。
3.个人进步:大大熟练了我对aigc工具的使用,熟悉了对pygame的使用,进一步拓展了我的知识面,让我亲身进行了小游戏的制作。
6.2不足之处
1.在游戏逻辑的实现过程中代码过于集中导致庞大不便维护
2.只实现了单层图片的消除方法,在尝试多层图片消除时由于bug不断且AI帮助有限最终放弃
3.对游戏的扩展失败导致玩法太少,趣味性不够