本文将会尽可能介绍新的扫雷技术指标的产生过程,所代表的意义及详细的计算公式。 阅读本文的前提是 熟悉3BV参数的含义 阅读本文的适合人群是 扫雷实力达到三级别相加100秒内的并期望继续进步的玩家
第一篇 移动距离与移速 在现行的三大国际扫雷版本中,Arbiter具有移动距离统计计算的功能。除此之外曾经的国际版本Clone2007同样具有移动距离数据。 此外,FreeSweeper也有移动距离数据,但是FS使用的是 曼哈顿距离。而Ar & Clone使用的是 欧几里得距离。
首先解释欧几里得距离和曼哈顿距离的区别。 目前的扫雷软件记录鼠标指针的移动 都是每过若干毫秒记录一次 记录的频率将直接影响距离统计值的精确度。 实际计算距离时是将所有的指针移动的距离全部累加获得。
针对某两次连续的记录 : 例如 13.887秒 坐标 320,34 13.891秒 坐标 333,47 曼哈顿距离计算方式: distance = ABS(333-320)+ABS(47-34) = 26 pixel 欧几里得距离计算方式: distance = [(333-320)^2+(47-34)^2]^0.5 = 18.385 pixel
无论是哪种计算方式,计算精度都非常依赖记录坐标点的次数,记录次数越多,距离也就越精确。
移速则是将移动距离除以时间,表示了玩家在单位时间内的平均移动量。
移动距离的长短往往能够体现玩家的判雷功力,一般来说判雷越好的玩家,移动距离越短。(但是某些进阶技巧会带来移动距离的增加,这时的距离并不能够说明判雷的优劣) 移速的快慢往往能够体现玩家的操作能力和鼠标性能,一般来说移速越快的玩家,操作能力越强,鼠标的性能越强。(某些玩家的开局习惯会让移速显得很大,这时的移速并不能体现操作能力和鼠标性能)
移动距离的常用单位是 像素(pixel) 由于现行的三大国际扫雷版本中,一个格子的规格是16*16像素,因此也可以使用 格子距离(square-path) 作为单位 换算公式: 1 格子距离 = 16 像素
由此衍生出来的参数 IODE (index of distance efficiency) 距离效率 IODE = 3BV / 格子距离 距离效率体现了一局中移动的风骚程度,这个参数的高低可以体现判雷功力。
第二篇 点击与有效点击
目前三大国际扫雷版本中都有对点击次数的统计。点击次数包括 左键点击次数 右键点击次数 双键点击次数 实际在计算点击次数关于右键点击次数有两种处理方法。
要了解两种处理方法的差异,首先需要知道扫雷软件如何记录鼠标点击 举例如下: 0.007秒 16,32 LC(表示左键按下) 0.014秒 32,32 LR(表示左键抬起) 0.021秒 55,23 RC(表示右键按下) 0.021秒 55,23 RR(表示右键抬起) 实际是软件并不记录双键的按下抬起,而是根据左键和右键的按下抬起顺序来判断是否为双键操作的。
第一种处理方法(clone msx vienna) 所有左键未按下状态中出现的RC 记做一次右键点击次数 第二种处理方法(arbiter) 所有左键未按下状态中出现的RC 记做一次右键点击次数 同时 所有的非1.5click的双键过程后 扣除一次右键点击次数(此处的解释仍然不够准确,期待郭嘉给出精确解释)
简单地解释:第一种处理方法下,一个右键率先按下的双键点击过程,会被计算为1右+1双 第二种处理方法下,会被计算为1双 这样的过程俗称:带右键
在Ar中,增加了对有效点击次数的统计。Ar将所有改变当前雷局局面的点击计算为一次有效点击。 例如,将一个格子标上雷,是有效点击 将一个格子的雷标记取消,也是有效点击 右键点击到已经打开的格子,不是有效点击 双键点击周围已经不存在未知格子的情况,没有改变局面,也不是有效点击
由点击和有效点击衍生的参数 corr thrp IOE Click/s Click-E/s corr(正确率) = 总有效点击 / 总点击 体现了点击的准确度 corr永远小于等于1 thrp(破空率) = 3BV / 总有效点击 体现了有效点击完成3BV的效率 thrp有可能大于1 IOE = 3BV / 总点击 体现了总点击完成3BV的效率 IOE = corr * thrp 也可能大于1
Click/s = 总点击 / 时间 体现了单位时间的点击次数 也可以理解为手指的总输出功率 Click-E/s = 总有效点击 / 时间 体现了单位时间的有效点击次数 也可以理解为手指的有效输出功率
|
最近一次修改:2014-7-18 15:35:00
|
|
|
“第二种处理方法(arbiter) 所有左键未按下状态中出现的RC 记做一次右键点击次数 同时 所有的非1.5click的双键过程后 扣除一次右键点击次数(此处的解释仍然不够准确,期待郭嘉给出精确解释)”
郭嘉表示没空研究这个。我简要说明一下两种处理方法的不同点。
产生差别的情形仅限于,右键首先按下的位置如果在已经打开的方格里,那么在右键松开之前按下左键,arbiter会扣除一次右键点击次数(R)而增加一次双击次数(D),之后的左键与右键哪个先松开不影响计数。
clone等其他软件混淆了这种情形与1.5clicks。关键在于右键按下的操作是否对局面产生了直接影响。如果右键按下的同时在局面上能标上或者取消一个雷,那么随后按下左键的操作就是1.5clicks(之后松开左键与右键)。
【可以忽略的:】如果要设计扫雷软件的话,还会涉及右键先标上一个雷然后再改写成问号,第三次操作才清空的问题。
|
|
啊对了。关于标雷之后连双击的问题,推荐一个手法。那就是先按下右键,然后在右键不松开的情况下,在待双击的几个位置点击左键,等双击完毕以后再放开右键。
|
|
无效点击一大把的路过。。。。最近流行发技术贴啊。。。
|
|
第三篇 Time 3BV/s RQP IOS QG 首先 这里提到的Time都是RealTime,真实时间。
Time = Time^1 / 3BV^0 时间,最简单的参数。 以大量成绩下的时间记录来衡量选手的实力是完全合理的。 但是在短时间内的竞赛中 仅仅以时间来衡量选手的实力是不合理的。
3BV/s = [Time^1 / 3BV^1]^-1 RQP = (Time^2+Time) / 3BV^1 ~= Time^2 / 3BV^1 QG = Time^1.7 / 3BV^1 人们考虑到3BV对时间的影响作用,提出的衡量实力的参数。 共同的特点是加入了3BV作为影响。也因此这3个参数都比时间更适合于竞赛。 不同的是3个参数中 时间的影响幅度 各不相同
IOS = log10(3BV) / log10(Time)
For EXP games: IOS ~= 0.66*3BV^0.24/0.66*Time^0.24 = (3BV/Time)^0.24 =3BV/s ^ 0.24
For INT games: IOS ~= 0.66*3BV^0.24/0.49*Time^0.32 = 1.35 * (Time^1.33/3BV)^-0.24
For BEG games:It is hard to describe~~~
基本得到的结论是高级的IOS几乎就是3BV/s的另外一种表现形式 中级的IOS大幅度增加了时间的影响幅度 介于QG和3BV/s的参数 初级的IOS则完全没法找到规律,数值变化已经没法达到一个实力参数应该保持的范围。
|
|
第四篇 平均成绩和JSDindex
扫雷的成绩受到了3BV OP IS 以及很多其他因素的影响。 因此一局的成绩往往不能够说明实际的情况。
如果需要衡量自己扫雷实力的进步,就需要大量成绩下的平均成绩作为依据。
本文给出一种平均成绩算法的建议。 平均时间: Avg Time = Total Time / games 总时间除以总局数 平均3BV: Avg 3BV = Total BV / games 平均QG: Avg QG = AvgTime^1.7 / Avg3BV 平均成绩的量化指标
为了便于比较平均成绩的好坏,这里引入一个玩家2012年6月的数据作为100%的基准值,计算得到JSDindex JSDindex = 【IF(初级,1.522,0)+IF(中级,5.054,0)+IF(高级,14.301,0)】/AvgQG
一般来说 JSDindex到达 100% 可以作为专业扫雷选手的标识。
|
|
第五篇 排行榜
扫雷的竞技规范化经历了一段长久的历史。详细情况可以查阅另外一篇专门介绍扫雷排行网站历史的文章。 现存的扫雷成绩排行有扫雷网(saolei.net) 和国际扫雷网(minesweeper.info)
目前的扫雷排行体系主要包括了 总时间排行 NF总时间排行 总BVS排行 NF总BVS排行 其中 minesweeper.info 还有只统计女性玩家成绩的专门排行。 saolei.net 则拥有地区排行,人气排行以及一个奇葩的人界排行。
本文尝试性地提出对排行榜改革的若干建议:
1 保留总时间 = 初级时间+中级时间+高级时间 的排行。 其中总时间排行可以考虑设定 2-25-100的老雷网3BV限制 或者2-30-99的国际网3BV限制 甚至更加苛刻的10-30-99新3BV限制。 增加不同风格的单独时间排行 ALL 所有风格 NF R = 0
可以忽略不看的部分---------------------- Light Flag 0 < R/Mine < 0.2 Normal Flag 0.2 <= R/Mine < 0.8 Heavy Flag R/Mine >= 0.8 可以忽略不看的部分----------------------
保留单项时间排行:三大单项设定3BV限制 10-30-99 其中初级限制与总时间排行的设定可以不同。
2 保留总BVS = 初级BVS+中级BVS+高级BVS 的排行。 设定3BV限制 10-30-99 增加不同风格的单独BVS排行 保留单项BVS排行
3 增加质量参数排行 RQP QG IOS三选一 排行规则和BVS排行规则完全类似
4 增加 积分排行 和 活跃积分排行 初级积分=4.14/QG+7.125*BVS+27.075/Time 中级积分=43.704/QG+5.321*BVS+320.64/Time 高级积分=145.728/QG+6.336*BVS+1021.14/Time 综合积分=初级积分*4+中级积分*9+高级积分*12
只有满足3BV限制 10-30-99的录像可以计入积分 其中活跃积分只取13周内的录像,可以体现现役玩家实力排行
5 增加 各单项各个BV的玩家排行
6 增加扫雷收藏成就 ASB (all sumed bvs)排行 扫雷收藏成就ASB = BEGASB + INTASB + EXPASB 初级收藏成就BEGASB = BVS.10+BVS.11+BVS.12+......+BVS.49+BVS.51+BVS.54 中级收藏成就INTASB = BVS.30+BVS.31+BVS.32+......+BVS.211+BVS.213+BVS.216 高级收藏成就EXPASB = BVS.99+BVS.100+BVS.101+......+BVS.376+BVS.378+BVS.381
收藏成就一方面体现玩家的实力,一方面需要玩家收集尽可能多的3BV。 鼓励玩家上传不同3BV的录像便于更好地了解玩家的技术风格。 可以有机会目睹罕见BV录像的诞生~~
7 增加战斗力 W-BVS 排行 战斗力 W-BVS = 10/149*W-BEG + 40/149*W-INT + 99/149*W-EXP 初级战力W-BEG = sumproduct(BVS.2~54 , RandomRate.2~54) 中级战力W-INT = sumproduct(BVS.30~216 , RandomRate.30~216) 高级战力W-EXP = sumproduct(BVS.99~381 , RandomRate.99~381)
其中RandomRate.99 表示在Arbiter中出现99BV的随机几率的近似值
战斗力是目前最能说明玩家的综合实力的参数。 各个级别的战斗力则是最能说明玩家该级别实力的参数。
|
|
第六篇 比赛
目前现有的比赛模式包括scoreganizer的在线比赛,但是需要限制使用Vienna软件。 另外包括线下举行的比赛,统计数据需要人工进行,效率和准确度略差。
本文尝试性地提出对增加在线比赛功能的若干建议:
1 自动审核技术,相信目前的自动审核从实现上来说,是没有问题的。 科长和TJD都是这方面的专家,完全可以提供自动审核必备的算法。
2 当玩家通过正常上传途径上传录像时,如果当前存在比赛, 则会出现参加比赛的选项,勾选后玩家上传的录像将同时作为参赛录像。
3 比赛页面可以查询比赛进程,包括往期比赛结果。
4 比赛模式可以支持自定义局数。 常见的比赛模式包括: 传统周赛 0-3-2 3中级 2高级 Fuck off winter 10-5-3 10初级 5中级 3高级
|
|
第七篇 ZiNi
ZiNi对应于FL 如同 3BV对应NF
大量的数据表明,标雷数量越多,平均成绩和最高记录的差距就越大。 标雷数量越少,平均成绩则越接近记录。
造成这一现象的根本原因是:FL风格真正的难度值应该是ZiNi,而不是3BV。
ZiNi 理论最少点击数 3BV 理论最少点击数(限制只用左键)
FL创造高3BV/s的秘密: 最大限度地利用ZiNi值与3BV值的差距。
ZiNi值是没有办法精确得到的,目前有几种近似值。 Greedy ZiNi 贪婪算法 Human ZiNi 仿人类算法 Random ZiNi 随机算法
Arbiter在 0.52.3 版本纠正了ZiNi值 也意味着此前所有版本的ZiNi值全部有误。
并且ZiNi值远没有3BV值意义明确,方便好用。 大多数情况下人们仍然更愿意使用3BV作为代替。
|
|
|
|