I made a thing for comp organizers that sorts people into heats based on WCA records

4Chan

Premium Member
Joined
Jun 21, 2008
Messages
2,984
Location
Lumbridge
YouTube
Visit Channel



Please excuse my microphone quality, it's from a cheap USB webcam.

I used python to code this thing that's bad and inefficient but can sort people into heats based on their previous records.

I don't actually know how to code, but I took a programming course in college over half a decade ago and Python is pretty useful in science research.
 
Last edited by a moderator:
FINALLY THANK GOD DOING HEATS WAS A PAIN IN THE ASS
 
Ohhh wowww, I totally thought this thing existed already and I was doing redundant work!

I'll compile it into an executable file shortly and post a link for anyone who wants it.
 
I'm curious, what criteria are you using for defining heats? My biggest issues with making heats were always trying to divvy up staff and scheduling the timing for each heat (well, I mean, I've split up the competitors so that each heat took about the same time, but then there's a bit of a risk for competitive integrity, where all the fast people get different scrambles), which on the surface doesn't seem to be addressed with your program.

Great work, 'tho - I'd love to see a tool like this in the WCA software suite :) Hopefully we can get to a place in the future where all the WCA-specific pre-organization is effortless!
 
Yeahhhh, it doesn't include an option that specifies for staff.

In my head, I assumed that I would just have to do some more editing with the heats by fiddling around with the staff scorecards after the thing initially splits the people.



Someone good with computers should totally make something like this and include staff options !!

EDIT: I just realised that the staff thing is relatively easy to code for, and I could even have options for different distribution of staff members, such as "First two rounds", "Evenly divide", "Staff round"

But I'm too tired and lazy, maybe if someone really wants it, I can do it!


Also, I can't compile it into a windows executable currently, will have to do it another day due to weird errors in installing python on my desktop LOL

zCZG8ur.png
 
Last edited:
For most events I have delegated, I've found that creating groups with similar average times is actually very unimportant. Things that really make certain groups fall behind are a lack of volunteers to fill all stations. I usually just identify all the competitors that are likely to help, and split them evenly across all groups to have a balanced group of volunteers. Also, avoiding groups with multiple people of the same name prevents a lot of potential headaches.
 
For most events I have delegated, I've found that creating groups with similar average times is actually very unimportant. Things that really make certain groups fall behind are a lack of volunteers to fill all stations. I usually just identify all the competitors that are likely to help, and split them evenly across all groups to have a balanced group of volunteers.

This.

In Finland we try to divide groups so that the older/more experienced people are evenly divided in different groups so that there will always be competent scramblers and judges for everyone.

If we just divide by time we could quite easily get a round that has 2 groups:
Group 1 has bunch of 7-9 year old kids that are competing first or second time and none of whom can scramble the cube
Group 2 has all the older/ more experienced people
--> There won't be enough competent scramblers/judges for group 2 and it will take forever....
 
This.

In Finland we try to divide groups so that the older/more experienced people are evenly divided in different groups so that there will always be competent scramblers and judges for everyone.

If we just divide by time we could quite easily get a round that has 2 groups:
Group 1 has bunch of 7-9 year old kids that are competing first or second time and none of whom can scramble the cube
Group 2 has all the older/ more experienced people
--> There won't be enough competent scramblers/judges for group 2 and it will take forever....

I think the purpose of this program is to ensure the average time of the groups is the same, not to group fast/slow people together. My "similar average times" was a bit misleading, I meant the overall average of the group of people, not a group of people with similar averages. Still, an unbalanced scenario that you describe can easily occur in either setup. Ignoring the first or second timers, there is little relationship between speed and willingness to help, and you can still end up with a group of people who vary in skill, but few are willing to help.
 
http://www.cubingusa.com/KCubing2015/competitors.php

Look at the first two competitors registered.
They are in fact two different people and it was a pain when they were solving.

Well, they could have just said, "Adam Green (with/without) an E at the end." My humanities teacher does the same thing. There are two Henrys in my class. One went by his middle name up until a few months into this school year, then he decided to change the spelling of his name to Henri (pronounced the same). Basically he wanted to mess with the Henry that's always gone by Henry. So what my humanities teacher does is she calls him Henri with an I to avoid confusion. So they could have done something similar with the Adam Green(e)s.
 
Well, they could have just said, "Adam Green (with/without) an E at the end." My humanities teacher does the same thing. There are two Henrys in my class. One went by his middle name up until a few months into this school year, then he decided to change the spelling of his name to Henri (pronounced the same). Basically he wanted to mess with the Henry that's always gone by Henry. So what my humanities teacher does is she calls him Henri with an I to avoid confusion. So they could have done something similar with the Adam Green(e)s.

they actually did that, they called "Adam Green No E" and "Adam Green With an E" or something to that effect if I remember correctly. I'm pretty sure I judged one of them, but that's beside the point.
 
I think the purpose of this program is to ensure the average time of the groups is the same, not to group fast/slow people together. My "similar average times" was a bit misleading, I meant the overall average of the group of people, not a group of people with similar averages. Still, an unbalanced scenario that you describe can easily occur in either setup. Ignoring the first or second timers, there is little relationship between speed and willingness to help, and you can still end up with a group of people who vary in skill, but few are willing to help.

Oh that makes much more sense now :D
 
they actually did that, they called "Adam Green No E" and "Adam Green With an E" or something to that effect if I remember correctly. I'm pretty sure I judged one of them, but that's beside the point.

First off, why didn't I see this post before I made my own script for google sheets to do something similar to this (but completely random, not sorted by times)

Second, I don't think there were any heats where both Adam's were together. If there were, I missed it. I tried to keep them separated.

EDIT: Could you share the code used? I'd like to look at it, and see if I can replicate it in JS (so it can be in google sheets and be automatically inserted into the spreadsheet). I might do something like this anyway, but I mostly want to see how you created the groups.
 
First off, why didn't I see this post before I made my own script for google sheets to do something similar to this (but completely random, not sorted by times)

Second, I don't think there were any heats where both Adam's were together. If there were, I missed it. I tried to keep them separated.

EDIT: Could you share the code used? I'd like to look at it, and see if I can replicate it in JS (so it can be in google sheets and be automatically inserted into the spreadsheet). I might do something like this anyway, but I mostly want to see how you created the groups.

I'm not sure, but I do remember people saying that. You did 2 heats at a time mostly, so maybe that was it?
 
Biscuit, my isp currently terminated my connection, but I'll pm you when it goes back up (soon hopefully)

I'm pretty bad at coding, so theres tons of bad habits, but I'll add lots of comments throughout so things might make a tiny bit of sense!
 
Has anybody actually ever thought about a WCA competition suite?
Some of the more experienced organizers (maybe recommended by the delegates) brainstorm on algorithms for automatically calculating event schedules and dividing competitors into heats and stuff. This is then compacted to some GUI-ish program so the organizer only says which events he wants to offer, how many rounds per event and a list of competitors and the program then returns a proposed schedule which can be reviewed or fine-tuned/adapted.

I'm not quite sure whether creating algorithms to calculate an event schedule is even possible or how that could be done for the slightly different competition systems in different countries. So I'm hoping for some feedback :)
 
Back
Top