forum

求BeatMap的难度系数算法(星星的数量)

posted
Total Posts
16
Topic Starter
dyx726
英文看不懂OTL,只能来中文区求一下算法,就是那个几颗星难度是怎么计算的……最近在做一个管理地图的小工具需要用到,于是来求一下……万分感谢
Topic Starter
dyx726
没人知道吗OTL……
Topic Starter
dyx726
继续求OTL
Topic Starter
dyx726
难度算法而已就没人知道吗=A=……
kanpakyin
我記得以前有帖子是研究這個的, 現在應該沉淪大海了吧...如果有空翻的話. 你可以試試翻一下把
Breeze
这个从来没有具体算法给出过
以前的研究里提到的, 我没记错的话应该主要是跟你的map的三围(OD,AR,HP)还有note的紧密度有关
Topic Starter
dyx726
我在贴吧里看到过一个算法可是我用上了之后发现不对……才来问的OTL……以为会有人知道http://tieba.baidu.com/p/1454997208
Breeze
星星算法太蠢可参考性并不高, 三星半的图可以蛋疼死你, 五星的图也可以超简单
与其花时间去找现在星星的算法不如想一个更具有参考性的难度算法推荐给老板
dkey

Breeze wrote:

星星算法太蠢可参考性并不高, 三星半的图可以蛋疼死你, 五星的图也可以超简单
与其花时间去找现在星星的算法不如想一个更具有参考性的难度算法推荐给老板
pp够蠢了,如果的话不更……
Topic Starter
dyx726
不……我管理工具……也就是把信息列出来方便管理,还有排列什么的而已,所以才用到这个难度算法……至于自己弄个难度算法作为参考是可以,不过那就是另一回事了……
难度貌似和分数加成有关来着吧……不好改什么的,不过如果可以有个更具参考性的难度算法在OSU里的确很不错,可是我不会英语(
eosin
平平都是五星
http://osu.ppy.sh/b/162594&m=0和http://osu.ppy.sh/b/142522&m=0的難度可說是天差地遠
statementreply

dyx726 wrote:

我在贴吧里看到过一个算法可是我用上了之后发现不对……才来问的OTL……以为会有人知道http://tieba.baidu.com/p/1454997208
这个算法是对的
Topic Starter
dyx726

statementreply wrote:

dyx726 wrote:

我在贴吧里看到过一个算法可是我用上了之后发现不对……才来问的OTL……以为会有人知道http://tieba.baidu.com/p/1454997208
这个算法是对的

我用这个算法算出来的结果和OSU里的不相同……
[CSGA]Ar3sgice
>_>去问开源哥@woc2006
aXaTuxv
这个嘛,星数玩到5星后都是坑爹的……难度依次是
easy(简单)有时候有XXX‘s easy 就是谁谁谁的难度
先说rank图的
normal(普通)
hard(困难)
hyper(更难)
insane(疯狂)extrem(极难)
extra、challenge(挑战难度)
another(触)
还有就是APP图,难度的话,玩了才知道。
statementreply

dyx726 wrote:

statementreply wrote:

这个算法是对的

我用这个算法算出来的结果和OSU里的不相同……
嘛我算出来是和osu里一致
SPOILER
int obj = circleCount + sliderCount * 2 + spinnerCount * 3;
if (obj == 0)
{
difficulty = 0.0;
}
else
{
int length = Convert.ToInt32(Math.Floor((lastObjectTime - firstObjectTime - breakTime) * 0.001));
double density = Convert.ToDouble(obj) / length;
double difficultySetting = hpDrainRate + circleSize + overallDifficulty;
if (sliderCount * 10 >= obj)
{
difficultySetting = 0.75 * (difficultySetting + Math.Max(0, Math.Min(10,
(1000.0 / timingPoints[0].millisecondsPerBeat * sliderMultiplier - 1.5) * 2.5)));
}
if (difficultySetting > 21.0)
{
difficulty = Math.Min(difficultySetting, 30.0) / 30.0 * 4.0 + 2.0 - Math.Pow(5.0 - density, 4) * 0.0032;
}
else if (density >= 2.5)
{
difficulty = Math.Min(difficultySetting, 18.0) / 18.0 + 4.0 - Math.Pow(Math.Max(5.0 - density, 0.0), 4) * 0.0143;
}
else if (density >= 1.0)
{
difficulty = Math.Min(difficultySetting, 18.0) / 18.0 + (density - 1.0) * 2.5;
}
else
{
difficulty = Math.Min(difficultySetting, 18.0) / 18.0 + 0.25;
}
difficulty = Math.Min(difficulty, 5.0);
}
Please sign in to reply.

New reply