两种俄罗斯方块的记分规则

简介: 在实现俄罗斯方块游戏的得分处理时,我上网查找了一下关于俄罗斯方块游戏得分计算的相关内容,但是,并没有找到能够简单清晰的解决我的问题的内容。

在实现俄罗斯方块游戏的得分处理时,我上网查找了一下关于俄罗斯方块游戏得分计算的相关内容,但是,并没有找到能够简单清晰的解决我的问题的内容。


互联网的海洋里有着数以亿计的比特信息,但是却唯独找不到能解决你当前问题的有效信息,哪怕是一个并不复杂的问题,不知道你是否也会经常遇到这种情况。信息如洪流滔滔不绝的从你的身边流过,但是却难以取到对你有用的那一瓢。


每当我遇到这种情况时,就会察觉到在信息海洋中盲目寻找终究是徒劳的,有些东西还是得自己干。


怎么寻找俄罗斯方块游戏的记分规则呢?最好的方式就是找一个俄罗斯方块游戏,然后边玩边记录,方法其实就是这么简单。


在玩过了几个不同版本的俄罗斯方块游戏之后,我发现了对于这个经典的小游戏竟然有两种差异很大的记分规则,我给它们起了两个不同的名字,一个叫做“简单平滑版”,一个叫做“高风险高收益版”。

简单平滑版

我们先来看一下“简单版”的记分规则。


每堆叠一个“形状”所获得的分数与等级成正相关,等级越高,堆放一个“形状”获得的分数越高,分数(S)与等级(L)的计算公式为:

S = (L-1) * 2 + 4

image.png

就消除奖励来说,一共只有 4 种不同的情况,一次消除的行数越多,获得的额外奖励分数越多。

image.png

这个版本的记分规则非常的简单,玩家只需要玩一会儿游戏大概就能够看出其中的计算方式,随着等级的提升,形状的下落速度会变得越来越快,同时叠放一个形状所获得的分数也会相应的增加。计算方式很简单,升级过程很平滑,所以我把它叫做“简单平滑版”。

高风险高收益版

接着来看一下相对复杂的“高风险高收益版”的记分规则。

image.png

如图,表格中的行表示的是“形状”当前堆叠的行号(俄罗斯方块一共有 20 行),表格中的列表示的是当前的等级。当前的得分(S)与堆放行号(R)和等级(L)的计算公式为:

S = L 2+(R-1)*L

堆放的行号越高,放置一个“形状”所获得的分数越高,另外随着等级的提升,“形状”的分数也会大幅的增加。


堆放的行号越高就意味着距离顶端越近,GameOver 的风险越大,所以分数越高。另外,随着等级的提升,“形状”的下落速度越快,越容易 GameOver,分数也随着指数级的增长。


最后,如果玩家在游戏中使用了加速下落(按住方向键下,让形状快速的下落),则当前“形状”的分数在之前的基础上再乘以 2 。在之前的计算公式中增加一个变量 d (无加速下落时,d = 0;有加速下落时,d =1)。


最终的分数计算公式是这样:

S = (L 2+(R-1)*L) *2 d

只要 GameOver 的风险越大(堆叠的越高,等级越高,加速下落),所获得分数就越高,所以我把它叫做“高风险高收益版”的记分规则。


至于消除所获得的奖励,两者其实差不多。


这两种记分规则各有其优缺点,“简单平滑版”简单易于实现,但是整个过程过于平滑,缺少了风险和挑战。“高风险高收益”版,在游戏中提供了更多的风险和奖励供玩家选择,但是实现起来相对复杂一点儿。


目前,我制作的俄罗斯方块使用的是“简单平滑版”的记分规则,下个版本将会更新为“高风险高收益版”的记分规则。


因为,玩家喜欢在游戏中冒险。


关于俄罗斯方块的得分的计算属于游戏设计中的数值策划,这大概是最简单的数值策划。从中我们多少能够看出一些“关于数值策划都是干什么”的答案。


即使是同一个游戏,不同的数值计算方案却能够为游戏带来很大的不同。不得不感叹,游戏设计真的是一门很神奇的艺术。




我是会做游戏也会教你做游戏的小蚂蚁,想学习做游戏的话,关注我的公众号就对啦!

相关文章
|
5月前
动态颤抖的眼睛效果404页面源码
动态颤抖的眼睛效果404页面源码, 源码由HTML+CSS+JS组成,记事本打开源码文件可以进行内容文字之类的修改,双击html文件可以本地运行效果,也可以上传到服务器里面,重定向这个界面
35 1
|
7月前
|
算法 数据处理 芯片
【期末不挂科-单片机考前速过系列P9】(第九章:6题速过单片机概述)经典例题盘点(带图解析)
【期末不挂科-单片机考前速过系列P9】(第九章:6题速过单片机概述)经典例题盘点(带图解析)
|
7月前
简约火箭发射静态404错误页面源码
简约火箭发射静态404错误页面源码
62 0
简约火箭发射静态404错误页面源码
|
7月前
俄罗斯方块游戏开发实战教程(7):消除判断和处理
俄罗斯方块游戏开发实战教程(7):消除判断和处理
89 0
|
7月前
斗地主案例及一些实现规则
4. 斗地主发牌 4.1 案例介绍 按照斗地主的规则,完成洗牌发牌的动作。 具体规则: 使用54张牌打乱顺序,三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌。
92 0
|
存储 前端开发 BI
九宫格抽奖系统源码开发功能规则实例解析
九宫格抽奖系统源码开发功能规则实例解析
新增节添加代码【滴水逆向三期46笔记】
新增节添加代码【滴水逆向三期46笔记】
摇杆控制移动自动瞄准射击如何实现?
前言 这篇教程实现了射击游戏中的摇杆控制移动以及自动瞄准射击功能,并提供一个示例项目的模版。
139 0
|
算法 Java
手把手一步一步教你使用Java开发一个大型街机动作闯关类游戏17敌人自动追踪(自动寻路)
手把手一步一步教你使用Java开发一个大型街机动作闯关类游戏17敌人自动追踪(自动寻路)
145 0
用两个.c和一个.h分组写初步扫雷游戏
用两个.c和一个.h分组写初步扫雷游戏
69 0
用两个.c和一个.h分组写初步扫雷游戏