从开发角度看羊了个羊

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

一、撰文背景

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

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

二、设计逻辑

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

1. 游戏玩法

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

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

2. 游戏设计

  • 卡牌规则

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

  • 卡位设计

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

  • 洗牌乱序

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

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

  • 视频解析

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

三、开源复刻

  • 复刻版本

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

  • 开源游戏

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

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

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

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

目录
相关文章
|
机器学习/深度学习 算法 PyTorch
论文阅读笔记 | 目标检测算法——DETR
论文阅读笔记 | 目标检测算法——DETR
2076 0
论文阅读笔记 | 目标检测算法——DETR
|
Kubernetes API Docker
k8s教程(pod篇)-容器获取pod信息(Downward API)
k8s教程(pod篇)-容器获取pod信息(Downward API)
2527 0
|
5月前
|
前端开发 JavaScript Cloud Native
技术栈全景:如何为你的项目选择正确的心脏与骨骼
技术栈全景:如何为你的项目选择正确的心脏与骨骼
677 113
|
9月前
|
存储 人工智能 物联网
QLoRA究竟如何从LoRA进化而来并成为AI工程师的必备技能?
本文AI产品专家三桥君深入解析了QLoRA技术在AI领域的关键作用。作为LoRA(低秩自适应)的升级版,QLoRA通过4位NormalFloat量化、双重量化和分页优化器三大核心技术,显著降低大模型微调的显存占用,同时保持性能。三桥君从技术背景、原理、应用场景(个人开发、企业定制、边缘设备)及未来潜力展开,指出QLoRA已成为AI工程师的必备技能,并预测其将继续推动AI技术发展。
616 0
|
缓存 Prometheus 监控
记一次victoriaMetrics代理性能优化问题
记一次victoriaMetrics代理性能优化问题
336 0
|
机器学习/深度学习 运维 监控
智能化运维:从被动响应到主动预防的转型之路####
本文深入探讨了智能化运维(AIOps)如何引领信息技术管理从传统的被动响应模式向主动预防机制转变,强调了大数据、人工智能算法与机器学习技术在提升系统稳定性和效率中的关键作用。通过分析智能化运维的核心价值、实施策略及面临的挑战,本文为读者揭示了一个更加智能、高效且灵活的IT运维未来蓝图。 ####
|
运维 监控 安全
应用性能管理(APM)软件
【10月更文挑战第18天】
807 5
|
监控 关系型数据库 MySQL
Percona Xtrabackup快速备份MySQL
Percona Xtrabackup快速备份MySQL
|
人工智能 监控 算法
人工智能的伦理困境:我们如何应对?
在这篇文章中,我们将探讨人工智能(AI)技术的快速发展带来的伦理问题。我们将分析AI技术的潜在影响,包括隐私侵犯、自动化失业、算法偏见等,并提出一些可能的解决方案。我们的目标是引发读者对AI伦理问题的深入思考,并鼓励公众参与到这一重要讨论中来。
501 1
|
SQL 存储 开发框架
Entity Framework Core 与 SQL Server 携手,高级查询技巧大揭秘!让你的数据操作更高效!
【8月更文挑战第31天】Entity Framework Core (EF Core) 是一个强大的对象关系映射(ORM)框架,尤其与 SQL Server 数据库结合使用时,提供了多种高级查询技巧,显著提升数据操作效率。它支持 LINQ 查询,使代码简洁易读;延迟加载与预先加载机制优化了相关实体的加载策略;通过 `FromSqlRaw` 或 `FromSqlInterpolated` 方法支持原始 SQL 查询;可调用存储过程执行复杂任务;利用 `Skip` 和 `Take` 实现分页查询,便于处理大量数据。这些特性共同提升了开发者的生产力和应用程序的性能。
693 0