软件工程第二次作业
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/SE2024 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/SE2024/homework/13253 |
这个作业的目标 | 使用Python编写一个“羊了个羊”风格的消除类小游戏。学生需借助GitHub Copilot或其他AIGC工具生成部分代码,并完成游戏的基本功能和交互设计。 |
学号 | 052204130 |
项目展示
https://github.com/7imc1/my_work
项目介绍
此项目为使用 Pygame 库编写的动物消了个消游戏。游戏的目标是通过点击相同的图案来消除它们,从而获得分数。
1.游戏规则采用简单的相同消除原理,游戏界面共有两个模块,游戏面板和储存列表,游戏面板是一个4*8的网格,储存列表为一个容量为5的图片储存区,它会将用户通过鼠标在游戏面板上点击的图片储存在该区域,若该区域内出现相同的图片,则消除,并且游戏面板中点击后进入储存列表后,原位置会及时刷新新图片。
2.玩家通过点击图片进行消除,成功消除后会增加十分,上方有score来记录分数,且有排行榜可查看
3.游戏时间为60秒,游戏结束的条件有两种,一是时间耗尽,二是当储存列表中的图片超过5。
项目代码功能展示
源代码实现以下功能:
1.游戏板和存储列表:创建一个多层的游戏板,用于存放图案,以及一个存储列表,用于临时存放玩家点击的图案。
2.显示开始界面:show_start_screen 函数用于显示游戏的开始界面,包括开始按钮和排行榜按钮。
3.游戏状态变量:包括游戏是否结束、计时器、玩家分数等。
4.检查匹配和消除:check_and_remove_matches 函数用于检查玩家点击的图案是否与存储列表中的图案匹配,并进行消除。
5.更新游戏板:update_board 函数用于在游戏板上的空位上随机放置新的图案。
6.点击图案:click_tile 函数处理玩家点击图案的事件。
7.加载和保存最高分:load_high_score 和 save_high_score 函数用于加载和保存玩家的最高分数。
8.主游戏循环:main 函数包含了游戏的主循环,处理事件、更新游戏状态、绘制游戏界面,并在游戏结束时显示游戏结束界面。
游戏运行展示
AIGC表格
子任务 | 借助何种AIGC技术 | 实现了什么功能 | 效果如何? |
---|---|---|---|
游戏逻辑的实现 | kimi | 实现了点击图片后,会有新的图片更新 | 经过多次调整才得以实现,AIGC并不能一次就给你完整的需求 |
开始界面的实现 | kimi | 添加了背景,加入了game start按钮 | 点击按键后迅速跳转游戏界面,效果显著 |
计时器的实现 | kimi | 在游戏界面的左上角添加了倒计时功能 | ai第一次给出的代码没有将计时器显示出来,但有计时功能,追加显示要求后实现 |
分数的实现 | kimi | 在游戏界面左上角添加了计分功能 | 效果显著 |
游戏结束判断的实现 | kimi | 完成了时间耗尽和储存列表堵塞两种游戏结束的条件 | 起初game over字样显示不明显,之后调整了字体颜色 |
游戏图片、背景的生成 | 智谱清言 | 生产了6种卡通图片作为游戏消除图片,1张开始界面背景 | 按照要求给出所需的图片 |
PSP表格
任务 | 预估耗时(h) | 实际耗时(h) | 评价 |
---|---|---|---|
安装pycharm,pygame | 0.5 | 1 | √ |
生成图片 | 0.5 | 0.5 | √ |
编写代码框架 | 2 | 1 | √ |
利用AIGC对框架进行功能的增添与优化测试 | 3 | 5.5 | √ |
划分难度设置 | 1 | 1 | ×,开始界面虽然有难度选项,但鼠标点击无法跳转,不知如何调整 |
整理编写博客 | 0.5 | 1.5 | √ |
感受
利用AIGC来进行代码功能的更新确实很方便,但AI有时无法准确理解你的需求,需要一步一步引导。
通过本次作业学习了许多小技巧。