从开发角度看羊了个羊

简介: 从开发角度看羊了个羊

一、撰文背景

据说最近有一款游戏名为 “羊了个羊”,风靡了各平台及社交圈。之所以用据说是因为自己一开始并没有注意到这个事情,不过由于受到 【话题达人】 勋章的召唤,还是决定写一写。

整个游戏的玩法比较简单,亲自体验过的小伙伴应该也都走过了其中的套路,本文主要从开发的角度进行描述。

二、设计逻辑

目前网络上已经可以找到很多复刻版开源代码,已经可以勾勒出整个游戏的全貌。小编在查阅资料时,发现李永乐老师在视频中已经对游戏的设计逻辑做了整体和全面的分析,在此重新整理一下,同时在文章末尾给出一些资源链接,大家感兴趣可以自行查看。

1. 游戏玩法

游戏的基本核心是三消,只不过在形式上有了一些变化。在下方的操作区会有一块7个格子的空间,用来存放从草坪取下来的牌,如果凑齐三个一样的牌则会消失【不需要连续】,如果拿满了7个不能消除的牌则游戏结束,游戏的目标就是在不死的情况下清空草坪上的所有牌。

在游戏的过程中,草坪上的牌是多层的,并且有些是被完全遮挡的,这就为游戏增加了难度和不确定性。当然,对于羊了个羊游戏本身源码以及实现模式我们靠外部推测是没办法完全还原的,毕竟还有运营和商业模式的因素,在牌局构建时,到底是单纯的随机还是有目的的增加死局概率这是无从得知的,毕竟游戏本身也经过多次更新,因此本文是建立在构建一个有解局的大前提下去分析设计思路。

2. 游戏设计

  • 卡牌规则

由于卡牌的位置是多层的,因此需要用三个坐标点来描述每个卡牌的位置:(Xi,Yi,Zi)。如果要生成一个有解牌局,则每一种卡牌要3个为一组进行生成,可以有多组,这样卡牌的总数为:卡牌种类数 X 卡牌组数 X 3,这是一个笼统的描述,因为在每一局中出现的卡牌种类数和相应的卡牌组数都可以波动。

  • 卡位设计

根据游戏中的实际效果,不同层的卡牌之间是有遮挡关系的【可在程序实现中调整】,如果错位的卡牌比较多是属于低难度的,因为可以预先看到底层的卡,多多少少可以提前布局。还有一种情况是完全遮挡的,也就是说只有把正上方的卡牌拿走之后才能看到底层的卡牌是什么,而留给玩家的操作空间是有限的,这就增加了游戏难度。

  • 洗牌乱序

在开始一个新的牌局时,可以通过上面描述的卡牌规则生成一个具有固定卡牌数量的牌局,卡牌种类可以调整,原则上就是种类也少,游戏越简单。因为如果卡牌总数一致,则每一种卡牌出现的组数就会相对增加,在洗牌乱序后,相同牌出现在视野中的概率就会增加。

在执行完乱序之后,其实你已经成功生成了一局新的游戏了,只需要将得到的新序列填充到预先设计的卡位中就可以了,但是此时牌局是否有解是未验证的,还应该去做一个解锁逆序的自检程序,只有被认定为有解的牌局才会送到玩家面前,如果这个时候还是游戏失败,那就真的是玩家实力不济了。

  • 视频解析

李永乐老师 - 史上最难小游戏“羊了个羊”深度剖析!

三、开源复刻

  • 复刻版本

开发游戏的老王 / Godot版羊了个羊

  • 开源游戏

一款名为鱼了个鱼的游戏,玩法相同,可以自定义难度。

【开源代码】:https://github.com/liyupi/yulegeyu

【在线玩耍】:https://www.yulegeyu.cn/

扫描下方二维码,加入CSDN官方粉丝微信群,可以与我直接交流,还有更多福利哦~

目录
打赏
0
0
0
0
159
分享
相关文章
10 常见网站安全攻击手段及防御方法
本文介绍了互联网上最常见的10种网络攻击,包括跨站脚本(XSS)、注入攻击、模糊测试、零日攻击、路径遍历、分布式拒绝服务(DDoS)、中间人攻击、暴力破解攻击、使用未知代码或第三方代码以及网络钓鱼。针对每种攻击,提供了相应的防护措施。保护网站免受攻击需要综合考虑不同的安全风险,并采取相应的防护措施。尽管无法完全消除攻击风险,但通过增强安全意识、更新软件、使用安全证书等方法,可以降低网站遭受攻击的可能性和后果的严重性。链接:https://baijiahao.baidu.com/sid=1712041656524695859&wfr=spider&for=pc(版权归原作者所有,侵删)
Promise.reject()和throw有什么区别?
Promise.reject()和throw有什么区别?
197 57
在我的开源项目(AI Godot 桌宠)中使用通义灵码
作为一名AI代码助手的忠实用户,我近期尝试了阿里开源的Qwen模型。通过在个人项目——一个由Godot引擎开发的AI桌宠软件中测试Qwen,我发现其在处理小众语言(如GDScript)时表现出色,能够快速准确地解决问题,甚至优化了我的代码。此外,Qwen在GitHub Actions自动化打包等复杂任务上的表现同样令人满意。其高效的代码补全速度更是超越了付费的GitHub Copilot。这次体验让我对开源AI工具刮目相看,强烈推荐大家试用。
基于springboot+vue.js+uniapp小程序的国产动漫网站的设计与实现附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp小程序的国产动漫网站的设计与实现附带文章源码部署视频讲解等
180 0
动画墙纸:将视频、网页、游戏、模拟器变成windows墙纸——Lively Wallpaper
动画墙纸:将视频、网页、游戏、模拟器变成windows墙纸——Lively Wallpaper
320 0
【阿里云云原生专栏】构建云原生应用:基于Spring Boot与阿里云服务的全栈指南
【5月更文挑战第21天】构建云原生应用是企业数字化转型的关键,本文提供了一份基于Spring Boot和阿里云的全栈指南。涵盖从阿里云账号注册、ECS与Docker搭建,到Spring Boot项目创建、业务代码编写和部署。此外,还介绍了如何集成阿里云OSS存储、RDS数据库服务以及ACK容器服务,助力打造高效、可扩展和易管理的云原生应用。
1022 3
uniapp下载图片到本地
uniapp下载图片到本地
225 0
CDNJS/UNPKG/JSDelivr 太慢用不了,换成这些国内高速镜像
npm cdn, cdnjs, unpkg, jsdelivr, zstatic, zstatic.net, s4.zstatic.net
13010 4
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等