软件工程第二次作业
软件工程个人第二次作业
课程 | 软件工程 |
---|---|
作业要求 | 要求 |
作业目标 | 通过AIGC工具开发一个类似羊了个羊的游戏“艾尔诺斯王国冒险记” |
学号 | 102201311 |
个人代码已经上传至GitHub
GitHub库
项目背景
随着人工智能生成内容(AIGC)技术的快速进步,游戏开发的效率和成本得到了显著降低,使得开发类似于小游戏的项目变得更加高效和经济。本项目旨在基于基础的模块消除机制,利用 Python 进行开发,并合理运用 GitHub Copilot、文生图等工具,以实现项目在需求与用户界面友好性之间的良好平衡。
项目思维导图
项目从“羊了个羊”为原点出发,通过aigc工具实现
游戏逻辑:
-
在游戏开始时,图案会成对生成并随机摆放,确保玩家能够有效匹配相同的图案进行消除。
-
玩家通过点击选择三个图案进行匹配,如果三个图案相同,则会被消除;若匹配失败,选择将被取消,允许玩家重新选择。同时,游戏会不断检查剩余图案数量,所有图案消除完毕时玩家获胜。
-
游戏设有积分机制,给予玩家游戏正反馈。每获胜一次,进入下一关的图片复杂度提高。
游戏剧情背景
艾尔诺斯王国被黑焰龙卡尔斯威胁,王国精灵艾丽娜寻找勇者艾瑞克相助。冒险团共同历险,最终在火山决战中击败恶龙,恢复王国和平,成为传奇英雄。
游戏封面
界面介绍
- try 按键功能为游戏试玩,基础版
*choose 按键下,为关卡选择界面,玩家可自由选择游戏关卡难度
*quit 按键,一键退出。抵制游戏诱惑你我,自律学习生活大家📖📖
关卡选择界面
游玩实录
- 右上角实时显示当前积分 🌔
- 鼠标选择图片后,会加上红框,双击红框可撤销选择操作 🌔
游戏机制
⭐ 1. 游戏板为 6x6 网格,每个网格包含随机加载的图案,使用 pygame.image.load 进行加载。每次游戏开始时,游戏板会重新创建,以确保图案的随机分布,生成同种图片的个数总为3的倍数,确保游戏能够成功结束。
⭐ 2.玩家可以通过点击三个相同的图案来进行消除。每次点击操作会被添加到 selected 列表中,当选择了三个图案后,系统将调用 check_match 函数进行匹配。如果匹配成功,这三个图案清除,并且玩家的得分会增加 10 分。
⭐ 3.游戏界面右上方显示当前得分,得分随着消除操作不断增加。
⭐ 4.游戏胜利条件是所有图案被消除,失败条件是连续选择六个无法三消的图片。在这两种情况下,分别调用 victory_screen 和 game_screen 函数显示结果画面。
⭐ 5.游戏鼓励玩家快速消除图案,提升得分,完成挑战,并增加游戏的趣味性与互动性。
游戏胜利画面
游戏失败
游戏崩溃退出
游戏附加功能
- 奖励机制:每成功消除一次,奖励10分的积分
- 撤回机制:错选误选图片,可以通过双击撤回操作
- 失败机制:当单次框选六张及以上无法消除图片,判定失败
项目实现过程的发现的收获与痛点:
素材来源
1.灵感与素材来源
- gif
- 游戏机制
- 游戏美术
https://zhuanlan.zhihu.com/p/349035523
- 图形生成
https://copilot.microsoft.com/
2.代码细节
-
**三消函数**
-
**关卡选择模块接口**
-
**动图处理**
-
**游戏图片生成**保证游戏能够有解
-
**积分机制**三消操作与积分更新配合实现
-
**关卡设置**随着关卡的变化,游戏基础图片数量增加,难度递增
项目测试
测试三消是否能够成功,当选中无法三消的图片大于等6时程序崩溃
AIGC表格
子任务 | 借助的AIGC技术实现的功能 | 效果 |
---|---|---|
主界面设计 | 借助文生图工具生成游戏图案 | 生成的图案关联性强,清晰度高。 |
倒计时与分数系统 | 借助ChatGPT进行逻辑思路梳理 | 逻辑梳理正确,但具体的代码细节、字体导入等仍需人工实现。 |
游戏逻辑开发 | GitHub Copilot提供部分模板 | 辅助生成部分代码提供参照。 |
适配与优化 | 借助ChatGPT对界面布局进行适配优化 | 帮助设计文字行距。 |
使用心得:
- ai有时候还是没法精细的了解表达的意思与需求,问多了感觉就有点数据冗余,变笨了。从新开始一次谈话,逻辑它的逻辑会更清晰
- 生成的代码有时候和目标效果还是有一些差距,得自己翻看样例,理解函数,明白代码上下逻辑结构才行
*ai的好处是生成代码超块,优化了手敲代码的时间,能快速给出代码,函数的框架。
*同时当代码报错,交给ai,它能快速给出一些解决方案,给人启发 - 找素材与代码样例时也出了大忙
PSP表格
任务阶段(PSP) | 预估耗时(h) | 实际耗时(h) |
---|---|---|
需求分析 | 3 | 4 |
生成设计文档、流程图 | 1 | 1 |
环境配置、项目图案准备 | 3 | 3 天(github审核超慢) |
技术学习 | 10 | 10 |
主界面开发及优化 | 3 | 3 |
游戏界面开发及优化 | 5 | 10 |
获胜界面开发及优化 | 1 | 1 |
失败界面开发及优化 | 1 | 0 |
需求点测试+代码调试 | 12 | 13 |
计算工作量 | 3 | 3 |
事后总结、提出优化方案 | 5 | 10 |
总计 | 45 | 3天零55小时 |
项目小节:
- 最痛苦的就是等待github教育审核,有空都得想着看看邮箱。
- 实践总耗时起来总是比估计的实践要久一些,提前做好规划,留足时间才能避免最后ddl 😢
- 过程中熟悉运用了github copilot,Dell_E3,chatgpt4o等AIGC工具,并在项目实践中对一个简单的游戏框架与游戏项目开发有了简单了解,借助chatgpt梳理项目思路,修改代码错误。使用文图工具,生成自己的素材
- 项目总体流程中,梳理代码逻辑脉络,理解使用函数,调用不同模块功能,花费了最多的精力与时间
- 及时备份,及时备份,及时备份在项目开发过程中好几次都是因为未及时备份导致代码丢失,被覆盖,白干。😢
过程性截图:
github copilot chat 交流代码错误
gif图片抽帧
copilot生成胜利界面背景图
插件安装
素材库