【跳舞的线】更优越的难度算法

说在前面:长篇大论的算法并不是想耽误大家时间帮我验算,而是让大家检验它的合理性。
算法大整改:有同学提议说舞线的难度应该在于容错率,所以判定的宽度才是难度算分的重点。以及“背板难度”不再被考虑。
另外,由于不同宽度下,连点或者快速点击的难度显得不一样,所以将加分改为与路宽分相乘。比如原来“低视角”是在总分上加一分,现改为在低视角部分的路宽分的基础上乘以(1+0.2)。最后的表达式形式就是:Σ每个路段的路宽分*(1+手速)*(1+连点)*(1+视角)*……
具体的算法:
1.每个路段的基础判定分=(6-路宽)²x该路段的长度。(这样讲可能不是很清楚,所以下面我们仔细说一下这一项。)
首先“路宽”这一项是多少呢?它取的是视觉上路的宽度/线的宽度。比如:







(大于5的我们不考虑)
然后是路的长度:比如洗笔池的长度是20%,那么洗笔池这个路段的基础分数就是(6-1)²x20%=5分。如此可以得到每个路段的基础判定分。
2.手速分的计算:(1)首先明确,手速项系数=(1+手速值)。用它与基础判定分相乘。
(2)然后是手速值的取法:(注意不是看绝对速度而是看是否吃力,例如风暴三连和风暴七连一样快,但是很明显三连并不是很难)
取值=0.2:(如序幕,水晶四连)不吃力,但需要在手速上分配注意力。
0.4:(如Faded 8的2连)略吃力,在手指完全抬起之前就需要落下。
0.6:(如风暴3连,秋天22连)需要全神贯注提高落指速度
0.8:(如教堂9连,刺客13连)点击完成后感觉疲劳,且稍微松懈就会点慢。
1.0:(如混沌)要借助手腕才能完成。
(3)接着,系数算好了,但系数乘在谁身上?答案是需要该手速的路段。如果一个按照路宽分得的路段不能满足其中手速需求不变的话,就需要继续分割(比如混沌开头20%前半部分没有4连,而后半部分有。那么就把它们分割为两个长度为10%的路段,手速系数2就只乘在后半段)。
3.连点项系数。首先定义连点为点击数≥6且bpm>180的匀速点击。然后像刚才一样考虑三个问题:(1)系数的形式:(1+连点值)
(2)连点值的计算:连点值=连点数/100,且同路段上的连点可累加。比如刺客中杀加起来102连点,则系数为2.02。
(3)考虑计算量与实际情况,连点项不再细分路段,用路宽和手速分割得到的路段当中,乘在其所在路段即可。
4.视角项系数(1)形式:(1+难视角值)*(1+视角旋转值)
(2)取值:难视角指低视角或视野遮挡。当以上两者任意一者存在时,难视角值取0.2。且不可叠加
该路段上每旋转90°,视角旋转值+0.05。同路段上可叠加
5.其它加分(1)线快的关卡在线快的部分会乘以一个系数(为了弥补路宽的估计判定所产生的误差,与手速无关),田野、秋天、圣诞派对,在全关都有1.4的系数,暗寒在全关有1.6的系数,圣诞雪橇段同样有1.6的系数。
(2)空气墙:存在空气墙的路段会多乘以一个1.4的系数。
(3)需要路线调整(迷宫)或者路面不规则,该路段乘以一个1.2的系数
以下是新算法的算分:(注意不要在意谁比谁难多少的问题,只用在意排序就OK)(算了三小时)
春天 0(尴尬)
序幕0.55
钢琴1.24
蓝调4.00
海洋4.61
嘻哈5.20
寒冬7.72
丑小鸭8.22
alone8.55
西部9.54
天梦9.77
情人节10.33
稀树草原10.76(谁叫人家尾杀路窄还转圈)
万魔10.92
田野12.30(毁三观)
青石巷12.67
沙漠12.72
地球CR 12.86
地球13.31(毁三观)
风暴13.80
末日13.91
雷鬼13.95
迷宫14.00
万圣15.20
足球15.26
Faded 8R 15.62
圣派16.07
圣诞16.22
暗寒18.65
秋天18.70
山脉19.14
水晶19.52
despacito 20.93(把单词拼完整,这下总认得到了吧)
混沌22.22
教堂(过关)23.48
水手27.73(运算量爆炸)
aau 29.82(运算量爆炸)
春节30.55
教堂(完美)31.35
FO 31.55
刺客32.43
园林33.77
赛车38.72(本来想拿手速0.6,空气墙1.8,路线调整1.2,低视角1.2,障碍出现晚1.4来算,结果算出来将近100所以把不必要的因素统统去掉了。所以最后空气墙改成了1.4,障碍出现晚直接删了)
还请大家多多提意见,帮我改进算法。