There is. Just play every song and record what they had. Only problem is it'll take way too long.
Not really (not about the length). It's extremely subjective and will never be accurate. I find trills, rolls, bursts, speed absolutely no problem. Jumpstream? Friggin hard. It will always be diverse and inaccurate. Inaccurate since even if you find a medium, there will always be high deviation because of huge varying opinions.
Okay, well, I've created a new and highly improved version of my program although it still fails to take many things into account as mentioned previously. But I think this would probably get about 98% of people into their correct divisions if we could determine numbers to be the cutoff of each version.
public class SkillTestV2 {
public static void main(String[] args) {
new SkillTestV2().start();
}
public void start() {
List<Score> theList = new ArrayList<Score>();
Scanner console = new Scanner(System.in);
while (console.hasNextLine()) {
String line = console.nextLine();
if (line.startsWith("Average Rank:")) {
break;
}
Scanner s = new Scanner(line);
if (!s.hasNext()) {
continue;
}
s.next();
if (!s.hasNextInt()) {
continue;
}
int difficulty = s.nextInt();
String current = "";
if (s.hasNext()) {
current = s.next();
}
String songname = "";
while (s.hasNext()) {
songname += current + " ";
current = s.next();
if ((1 == current.length() || current.length() > 6) && (current.endsWith("0*") || current.endsWith("5*") ||current.endsWith("0") || current.endsWith("5"))) {
break;
}
}
if (!current.endsWith("*")) {
continue;
}
int perfects = s.nextInt();
int goods = s.nextInt();
int averages = s.nextInt();
int misses = s.nextInt();
int boos = s.nextInt();
double val = goods + 1.8*averages + 20.0/275*boos;
theList.add(new Score(songname, difficulty, (int) val));
}
// iterate over the list and get the best scores
Score[] best = new Score[10];
int[] weights = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1};
int[] goods = {2, 5, 10, 15, 20, 25, 30, 35, 40, 50, 75};
for (int i = 0; i < 10; ++i) {
best[i] = new Score("You lose", 1, 9999); //really bad score
for (Score s : theList) {
if (s.difficulty > best[i].difficulty && s.goods <= goods[i]) {
best[i] = s;
}
}
theList.remove(theList.indexOf(best[i]));
}
int total = 0;
for (int i = 0; i < 10; ++i) {
System.out.println(best[i]);
total += weights[i] * best[i].difficulty;
}
System.out.println("Total score= " + total);
}
public class Score {
public String songName;
public int difficulty;
public int goods;
public Score(String songName, int difficulty, int goods) {
this.songName = songName;
this.goods = goods;
this.difficulty = difficulty;
}
Output with my level ranks:
0 (piano version) (66) 1 goods.
K8107 (65) 4 goods.
For FFR (67) 8 goods.
Gynandromorph (66) 15 goods.
Starwolf (72) 20 goods.
Romance in the Club feat. Liquido (70) 18 goods.
Undiscovered Colors (70) 26 goods.
Midnight Dragon (69) 19 goods.
Summer Time Perfume (69) 37 goods.
Caprice (73) 50 goods.
Total score= 3723
Very simple to use and now uses a player's 10 best scores. Just click run, copy and past your level ranks (use select all) into it, and it produces the output.
Edit at 3:50am on 7/21: Improved to this:
0 (piano version) (66) 1 goods.
K8107 (65) 4 goods.
For FFR (67) 8 goods.
Starwolf (72) 13 goods.
Romance in the Club feat. Liquido (70) 18 goods.
Midnight Dragon (69) 19 goods.
Undiscovered Colors (70) 26 goods.
Exciting Hyper Highspeed Star (69) 33 goods.
Summer Time Perfume (69) 37 goods.
Caprice (73) 50 goods.
Total score= 3748
Okay, well, I've created a new and highly improved version of my program although it still fails to take many things into account as mentioned previously. But I think this would probably get about 98% of people into their correct divisions if we could determine numbers to be the cutoff of each version.
public class SkillTestV2 {
public static void main(String[] args) {
new SkillTestV2().start();
}
public void start() {
List<Score> theList = new ArrayList<Score>();
Scanner console = new Scanner(System.in);
while (console.hasNextLine()) {
String line = console.nextLine();
if (line.startsWith("Average Rank:")) {
break;
}
Scanner s = new Scanner(line);
if (!s.hasNext()) {
continue;
}
s.next();
if (!s.hasNextInt()) {
continue;
}
int difficulty = s.nextInt();
String current = "";
if (s.hasNext()) {
current = s.next();
}
String songname = "";
while (s.hasNext()) {
songname += current + " ";
current = s.next();
if ((1 == current.length() || current.length() > 6) && (current.endsWith("0*") || current.endsWith("5*") ||current.endsWith("0") || current.endsWith("5"))) {
break;
}
}
if (!current.endsWith("*")) {
continue;
}
int perfects = s.nextInt();
int goods = s.nextInt();
int averages = s.nextInt();
int misses = s.nextInt();
int boos = s.nextInt();
double val = goods + 1.8*averages + 20.0/275*boos;
theList.add(new Score(songname, difficulty, (int) val));
}
// iterate over the list and get the best scores
Score[] best = new Score[10];
int[] weights = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1};
int[] goods = {2, 5, 10, 15, 20, 25, 30, 35, 40, 50, 75};
for (int i = 0; i < 10; ++i) {
best[i] = new Score("You lose", 1, 9999); //really bad score
for (Score s : theList) {
if (s.difficulty > best[i].difficulty && s.goods <= goods[i]) {
best[i] = s;
}
}
theList.remove(theList.indexOf(best[i]));
}
int total = 0;
for (int i = 0; i < 10; ++i) {
System.out.println(best[i]);
total += weights[i] * best[i].difficulty;
}
System.out.println("Total score= " + total);
}
public class Score {
public String songName;
public int difficulty;
public int goods;
public Score(String songName, int difficulty, int goods) {
this.songName = songName;
this.goods = goods;
this.difficulty = difficulty;
}
Output with my level ranks:
0 (piano version) (66) 1 goods.
K8107 (65) 4 goods.
For FFR (67) 8 goods.
Gynandromorph (66) 15 goods.
Starwolf (72) 20 goods.
Romance in the Club feat. Liquido (70) 18 goods.
Undiscovered Colors (70) 26 goods.
Midnight Dragon (69) 19 goods.
Summer Time Perfume (69) 37 goods.
Caprice (73) 50 goods.
Total score= 3723
Very simple to use and now uses a player's 10 best scores. Just click run, copy and past your level ranks (use select all) into it, and it produces the output.
I'm quite the noob when it comes to programming. Does this calculate average rank of songs played?
Zakvvv666's Graduation Tournament Division 3 1st place
6th FFR Official Tournament Division 3 6th Place
Silly/Sax's Summer Sensation Division 4 2nd Place
Dragon Fury's Custom Tourney 8 Division 5B 4th Place
Best 2 or fewer * 10 +
Best 5 or fewer * 9 +
Best 10 or fewer * 8 +
Best 15 or fewer * 7 +
Best 20 or fewer * 6 +
Best 25 or fewer * 5 +
Best 30 or fewer * 4 +
Best 40 or fewer * 3 +
Best 50 or fewer * 2 +
Best 75 or fewer
And each must be a unique song, and I can easily make it maximized so that you get the highest possible score it can give you with forcing each to be a unique song.
ffr, where we need ranks, stats, etc... for everything
Originally posted by One Winged Angel
39,000 popsicles pro bg blue note arrow slayer whoa damn..
Originally posted by Xx{Midnight}xX
one way to stream them all
Originally posted by Xiz
Right after sex, it skillboosted me by +10 levels from like a 35-45 about. (Which then 15 min's later I got really tired and couldn't play anymore)
But then my lady friend got pissed off I was playing FFR instead of playing her. Then for the rest of the night she played the 'Only want me for my body' card and I didn't get to sleep with blankets that night.
Originally posted by thesunfan
replacing ifitypedhisnameaslargeashisnamesuggests,iwouldgetbanned with theelongatedaustrocanadian3000 (pop).
Originally posted by reuben_tate
Title: Popsicle Three
Thousand the farthest
He's gone in an official
Whoop hip hip hooray!
Originally posted by U.N. Owen
kjwkjw: "oh my god, Tosh. Post that in the thread."
@popsicle_3000:
Danger incoming
The popsicles are melting
Three thousand of them
Originally posted by Wayward Vagabond
you got to ease the topic into some conversation and let it go from there
dynam0: man friend that was an intense sm session right?
friend: haha yeah you really nailed those patterns
dynam0: yeah man kind of like how gay dudes nail other gay dudes in the ass!
friend: hey bro can i tell you something
dynam0 yeah man whats up?
friend: hypothetically speaking would you care if i was bisexual or maybe even gay?
dynam0: bro we shower together after sm sessions all the time and i'll still shower with you even if you are gay or w/e thats your thing just dont try to ram my ass HAHAHA
friend: thanks man
dynam0: no problem man
Originally posted by One Winged Angel
pop takin' time out of playing irl Trauma Center to check in on his fiffer buds (mm)
Originally posted by Xiz
Well, Popsicle won every award this year so it was canceled.
EDIT: Hijacking this post to give some thoughts, since this isn't a doug-skill-thing-support-thread.
Weighted best scores aren't the worst way to to judge people. It's inherently flawed as long as combo scoring exists and wouldn't actually work as an actual ranking system since it ignores everything but your best 10 scores. However, it probably would give a nice rough indicator for things like tournament placement purposes. Not for ranking though, it's too transparent and one-dimensional.
Originally posted by EzExZeRo7497
Of course, that's only if you use difficulties as a factor to indicate skill, which I really don't recommend to begin with.
I wouldn't be against simply using song difficulties as a major factor in ranking, even if it discards details such as skillsets. They're unimportant in the bigger picture as long as the system rewards things like consistency more than anomalistic scores.
Comment