软件工程第二次作业

这个作业属于哪个课程 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有时无法准确理解你的需求,需要一步一步引导。
通过本次作业学习了许多小技巧。

posted @ 2024-09-18 16:30  园友3512127  阅读(17)  评论(0编辑  收藏  举报