软件工程课程第二次个人作业

随笔1个月前发布 姜磊
33 0 0
这个作业属于哪个课程 软件工程
这个作业要求在哪里 查看作业要求
这个作业的目标 开发一个类似羊了个羊消消乐小游戏~
学号 102202141

我的谷歌邮箱 fufubuff@gmail.com

我的github链接 https://github.com/fufubuff

我的博客园链接 https://www.cnblogs.com/fufubufff

😊😊😊fufubuff是全网唯一ID马甲,其他的不承认。

😊😊😊我的博客有点击特效,还可以开关灯(右上角有一个小案件),有兴趣的小伙伴可以玩。

😊😊😊非老师助教还有我的好朋友们的请不要偷偷视奸我的作业,因为用自己的命名一个游戏很羞耻,求停止阅读。。。。

本次作业的源码会于9.18号作业截止前的某一天放到我的github上,反正老师看的时候肯定有了,这里仅作部分最终版本代码展示(因为全部的放不下)和游戏实机展示,还有游戏介绍。

一,环境与工具准备

给我的python环境安装pygame
Pygame是一个用于开发游戏的库,可以帮助人快速完成游戏界面和逻辑的开发。
软件工程课程第二次个人作业
下载github copilot
安装代码辅助软件
在接下来的操作里可能用这个github copilot也有可能用GPT4等AIGC的工作
软件工程课程第二次个人作业

因为我是openai尊贵的20美元会员,所以我一般是享受oepnai的付费服务来进行AIGC.

主要的代码还是python和pygame包的运用,还有各层逻辑的组织和函数功能的编写,还有游戏的启动循环关卡迭代。

二,关于软件设计需求分析和逻辑组织

🎮 游戏介绍

🌟 游戏名称:《fu了个fu》

欢迎来到《fu了个fu》的世界!这是一个死宅二次元像素风小游戏!这是一个富有创意的益智游戏,邀请玩家在多样化的关卡中进行挑战,使用策略和速度解决谜题,适合所有年龄层的玩家。

📜 游戏规则

游戏中,玩家需要操作不同的图块进行匹配和消除。
随着玩家的进步,关卡难度将逐渐增加。
特殊的图块例如冰冻图块需要特定的操作来解冻和消除。

🛒 商城功能

在游戏内的商城中,玩家可以给本人的vx付款码打钱得到各种定制服务和道具,如时间延长、特殊能力或直接通关服务。
使用虚拟货币进行交易,可以通过游戏进度获取或通过实际购买获得更多货币。

🏆 拓展功能

有冰冻系统,冰住一些图块
还可以听歌

🎨 游戏特色

丰富多彩的图块:游戏中的图块设计多样,每种图块都有其独特的视觉和功能。
引人入胜的关卡设计:每个关卡都设计有独特的挑战,激励玩家发挥最大潜力。

⚙️ 如何开始

下载并安装《fu了个fu》。
打开游戏并通过简介教程了解基本操作。
开始你的关卡挑战,享受游戏带来的乐趣!


我们希望《fu了个fu》能提供一个既有挑战又有趣的游戏体验。快来加入这个充满乐趣和挑战的世界吧!🚀
我这个游戏运行代码包的main文件就直接可以玩了,如果需要定制小游戏的话我可以打包成应用程序送给你。
我相比其他同学的优势就是我的游戏页面非常地可爱,美观性很高(自认为)

三,游戏整体界面动态和静态展示

因为博客园jpg格式的图片大小限制在只能放10mb的,所以这里对时长和画质大小做了压缩请老师助教见谅。

动态实机演示

软件工程课程第二次个人作业
游戏启动
软件工程课程第二次个人作业
游戏超时,游戏一开始的设置是240s,随着关卡的递增出现冰块图块和时间随关卡递减20s
软件工程课程第二次个人作业
游戏失败,盘子的容量为5,一旦盘子里的候选匹配方块大于等于5个不能腾出空位就算作游戏失败
软件工程课程第二次个人作业
游戏通完第一关然后升级冰块小图块,要求更高,要先三个解冻然后会变成未冻住状态回到原地(这个回到原地的代码写了超级久,一直出bug)
软件工程课程第二次个人作业

游戏素材展示

这里的图都是我自己去免费网上找的然后扣成透明底,然后那个冰块也是我自己P的加GPT生成,有部分GPT生成,不会侵权
软件工程课程第二次个人作业
软件工程课程第二次个人作业
如果你来我的本机上玩的话还有三个连一起触发的音效和背景音乐
主打一个像素风

一些静态界面

开始界面

软件工程课程第二次个人作业
这里设置了主菜单,分别是开始游戏和设置还有商店。
商店可以购买付费服务,也就是我本人亲自为你提供服务,也设置了返回的按钮可以回到主菜单
软件工程课程第二次个人作业
-**设置这里可以调节音量还有图像
软件工程课程第二次个人作业

点击start按钮,游戏进入开始程序,新手指引和规则介绍

软件工程课程第二次个人作业

按一下继续,然后就到了第一关的页面,第一关就是普通的消消乐,有倒计时和分数,三个连在一起算是消除

软件工程课程第二次个人作业

点击小图标会摆放到盘子里,三个在一起会消除,必须全部消除完才算胜利

软件工程课程第二次个人作业

冰块系统,要重复消一次,每次数量随机生成,关卡越到后面冰块概率越高

软件工程课程第二次个人作业

不慎盘子容量满了就会出现game over的界面,然后可以返回重开。

软件工程课程第二次个人作业

如果超时游戏还没有结束就会弹出界面显示超时

软件工程课程第二次个人作业

代码功能展示

整个python代码包一共有4个文件,menu.py,main.py,game.py,setting.py

main.py就是游戏驱动启动程序

软件工程课程第二次个人作业

game.py,这个是游戏核心功能的实现,我搞了很多个函数,这里拿几个重点的展示,具体详细看我源码。

软件工程课程第二次个人作业
一开始小图层随机布局的生成
软件工程课程第二次个人作业
对于点击功能的处理
软件工程课程第二次个人作业
鼠标移动到小图块上会有粉色边框,沿透明底绘制,代表高亮
软件工程课程第二次个人作业
消消乐匹配函数然后移除图块的逻辑
软件工程课程第二次个人作业
这个是图块被消掉时动画的代码,调bug也调了很久
软件工程课程第二次个人作业
本来想搞那种效果,就是渐渐渐渐地透明,但是能力不足,最后只能搞平移

menu.py的代码部分展示

软件工程课程第二次个人作业
这里主要是主菜单的构建,还有商店以及设置键和页面的导入

settings.py就是一些颜色大小参数的固定和引入,这里不做固定展示。

AIGC工具的使用和感受

子任务 借助何种AIGC技术 实现了什么功能 效果如何
游戏主菜单和返回功能开发 通过询问 ChatGPT 获取指导 在游戏中实现了主菜单显示和返回功能 功能成功实现,主菜单可用
主菜单中 Start Game 功能完善 ChatGPT 代码优化建议 修复了点击 “Start” 后直接显示超时页面的问题 正常跳转到游戏规则页面
等待返回主菜单功能 ChatGPT 指导使用函数优化 使用 wait_for_menu_click 等待用户操作后返回主菜单 功能成功,实现预期效果

一些bug和框架实现的疑惑会去问gpt4,但是ai有个功能就是有的时候没那么智能化
比如说我一开始想拿那个粉色边框选中图层最上面的那个图块,因为羊了个羊是堆在一起的,所以我这个也是把所有要被消除的小图块堆在一起,然后那个粉色边框我一直会选到很多个,,然后问gpt,gpt也是一个智障。
我后面把逻辑反过来写就成功了。
软件工程课程第二次个人作业
还有就是对于代码,ai前后实现的变量和具体方式会有所区别,很多循环也是自己前后矛盾,尤其是gpt4特别爱偷懒,漏写代码。4o又是更加智障的存在。对于代码的bug没有办法知道在哪,
所以对于代码的逻辑结构和循坏规律绝对要清楚,不然一味地依靠ai自己没有想法和思考绝对是做不出来的。
一个消消乐小游戏只算核心的game.py都五百行代码了,gpt是很难能处理这么大量地代码的。必须自己慢慢组织和思考才能达到游戏功能的实现。

总结

本来想加点炸弹锁链什么的,丰富功能,但是由于我机器学习的老师给我的作业这个学期打了三个B(最差的等级)导致我无法再写一行代码悲痛欲绝,所以版本目前暂时更新到这里,等我平复好心情再来更新。

感谢阅读!

__EOF__

软件工程课程第二次个人作业
本文作者:fufubuff
本文链接:https://www.cnblogs.com/fufubufff/p/18406779.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...