User:Arcorann/DDR Scoring: Difference between revisions

good thing I still have my notes because AIJ forums are dead right now
(good thing I still have my notes because AIJ forums are dead right now)
Line 84: Line 84:
where
where
*J = 2 if Perfect/OK, 1 if Great, 0 otherwise
*J = 2 if Perfect/OK, 1 if Great, 0 otherwise
*N = number of steps plus freezes in song


Score is rounded down to nearest integer for output but fractions are retained internally.
Score is rounded down to nearest integer for output but fractions are retained internally.
Line 95: Line 96:
where
where
*U = 1000000 / N
*U = 1000000 / N
*N = number of steps plus freezes in song


Score is rounded down to nearest 10 for output but fractions are retained internally.
Score is rounded down to nearest 10 for output but fractions are retained internally.


=== A ===
=== A onwards ===
:Step Score =  
:Step Score =  
:* U if Marvelous
:* U if Marvelous
Line 107: Line 109:
where
where
*U = 1000000 / N
*U = 1000000 / N
*N = number of steps plus freezes in song


Score is rounded down to nearest 10 for output but fractions are retained internally.
Score is rounded down to nearest 10 for output but fractions are retained internally.
Line 159: Line 162:


Pending writeup (partial):
Pending writeup (partial):
* 3rd Endless (known)
* 4th Endless (known)
* MAX2 Endless (needs checks)
* MAX2 Endless (needs checks)
* Extreme Endless (needs checks)
* Extreme Endless (needs checks)
* SuperNOVA2 Endless
* X Endless (conjecture available, needs checks)
* X2 Endless
==== 3rdMIX Endless ====
Let C' be the adjusted combo count after step:
: If C = combo count after step and C'' = value of C' on previous step, C' = :
:* max(C'', C) if Perfect or Great
:* floor(C'' / 2) otherwise
Then,
:Step Score = J * (floor(C'/4)^E + 1) * L_1 * L_2
where
*J = 300 if Perfect, 100 if Great, 0 otherwise
*E = min(6, floor(1 + (S - 1) / 8))
*L_1 = 1 + floor(N / 256)^floor(1 + (S - 1) / 32)
*L_2 = S^min(9, floor(1 + (S + 15)/32)) * (S - max(0, S - mod(S + 15, 32) - 1))
*N = cumulative step count across all stages so far after step
*S = current stage number
The term (S - max(0, S - mod(S + 15, 32) - 1)) can also be expressed as:
*S, if S <= 16
*mod(S + 15, 32) + 1 if S > 16
Yes, this means the score per step can go down when crossing stage boundaries, e.g. if S goes from 272 to 273.
==== 4thMIX Endless ====
:Step Score = J + (floor(C/4) * L)^2
where
*C = combo count after step
*J = 301 if Perfect, 101 if Great, 0 otherwise
*L = max(1, S - 5) * max(1, floor(2^E * (S - 16 * (E + 3)) - 1))
*E = min(11, floor(S / 16) - 4)
*S = current stage number
Alternatively, if we let L = max(1, S - 5) * L_2 and L_2(S) be a function of S, then we can define it as a recurrence:
* L_2(S) = 1, S <= 16
* L_2(S) = L_2(S - 1) + 1 * (mod(S, 2 ^ (4 - floor(S / 16)) == 0), 17 <= S <= 64
* L_2(S) = L_2(S - 1) + 2 ^ min(11, floor(S / 16) - 4), S >= 65.
Note that if not Perfect or Great C will be 0 and thus step score will be 0.


== Mobile mixes ==
== Mobile mixes ==
40

edits