I know this might qualify for off-topic, but as it could eventually get used on this site (or maybe already had been thought about it), I'm posting it here to get more traffic.
I am working on a bags (cornhole, bean bag toss) tourney for work. We played last year and I won, but I didn't play any of the runner-ups, so I'm trying to figure out how to better schedule things this year. There will be too great of a number of players to do a round robin, so I think swiss would be the way to go. Guessing that there will be at least 48-50 players. how would one set up such a thing? I get the math behind two player swiss system, but a 4player, 2v2 where partners don't stay the same...
help!
'top
How many rounds do you think you will play?
as many as it takes, i guess. i don't know what number of participants i have constrain it to. trying to figure out how many are going to want to partake.
i'll have to look and see how many we played last year.
Here's my idea -
you need a number of players divisible by 4
Use this double elimination bracket here
https://www.printyourbrackets.com/64-team-double-elimination.html
In each of the 4 brackets put an equal number of people filling top-down - put the rest as bye's for record keeping
In each match-up call the players A and B (so in game 1 player A is listed higher/first over player B and so on)
Instead of players playing each-other they play players in another bracket somewhere on the page.
Here is what I came up with - I sort of brute-forced it so am not sure if it would out great (especially with bye's and at the end), but tried to make players play with different people
https://docs.google.com/spreadsheets/d/1K3Krd3MmbKy753JlGD7gknNjVsSIzLH9v07nw3BACSw/edit?usp=sharing
Does this make any sense? Seem like it would work?
i ...kinda... follow, but it's definitely kinda hard to. but it did lead me to put thoughts together to give an example of what i'm thinking. just need help coding up excel (or something) to make it work for random winners -- in this case, and to simplify following, the left half of the 'vs' always wins:
Round 1
|
Round 3 Winners
|
Round 5 Winners
|
|||||||||||||||||
1A | 17A | vs | 1B | 17B | 1A | 5A | vs | 9A | 13A | 1A | 2A | vs | 3A | 4A | |||||
2A | 18A | vs | 2B | 18B | 2A | 6A | vs | 10A | 14A | ||||||||||
3A | 19A | vs | 3B | 19B | 3A | 7A | vs | 11A | 15A |
Championship
|
|||||||||
4A | 20A | vs | 4B | 20B | 4A | 8A | vs | 12A | 16A | 1A | vs | 2A | |||||||
5A | 21A | vs | 5B | 21B | |||||||||||||||
6A | 22A | vs | 6B | 22B |
Round 3 Losers
|
Consolation
|
|||||||||||||
7A | 23A | vs | 7B | 23B | 17A | 21A | vs | 25A | 29A | 3A | vs | 4A | |||||||
8A | 24A | vs | 8B | 24B | 18A | 22A | vs | 26A | 30A | ||||||||||
9A | 25A | vs | 9B | 25B | 19A | 23A | vs | 27A | 31A | ||||||||||
10A | 26A | vs | 10B | 26B | 20A | 24A | vs | 28A | 32A | ||||||||||
11A | 27A | vs | 11B | 27B | |||||||||||||||
12A | 28A | vs | 12B | 28B | 1B | 5B | vs | 9B | 13B | ||||||||||
13A | 29A | vs | 13B | 29B | 2B | 6B | vs | 10B | 14B | ||||||||||
14A | 30A | vs | 14B | 30B | 3B | 7B | vs | 11B | 15B | ||||||||||
15A | 31A | vs | 15B | 31B | 4B | 8B | vs | 12B | 16B | ||||||||||
16A | 32A | vs | 16B | 32B | |||||||||||||||
Round 2 Winners
|
17B | 21B | vs | 25B | 29B | ||||||||||||||
1A | 9A | vs | 17A | 25A | 18B | 22B | vs | 26B | 30B | ||||||||||
2A | 10A | vs | 18A | 26A | 19B | 23B | vs | 27B | 31B | ||||||||||
3A | 11A | vs | 19A | 27A | 20B | 24B | vs | 28B | 32B | ||||||||||
4A | 12A | vs | 20A | 28A | |||||||||||||||
5A | 13A | vs | 21A | 29A |
Round 4 Winners
|
||||||||||||||
6A | 14A | vs | 22A | 30A | 1A | 3A | vs | 5A | 7A | ||||||||||
7A | 15A | vs | 23A | 31A | 2A | 4A | vs | 6A | 8A | ||||||||||
8A | 16A | vs | 24A | 32A | |||||||||||||||
Round 4 Losers
|
|||||||||||||||||||
Round 2 Losers
|
9A | 11A | vs | 13A | 15A | ||||||||||||||
1B | 9B | vs | 17B | 25B | 10A | 12A | vs | 14A | 16A | ||||||||||
2B | 10B | vs | 18B | 26B | |||||||||||||||
3B | 11B | vs | 19B | 27B | too hard to think about to fill the rest out… | ||||||||||||||
4B | 12B | vs | 20B | 28B | |||||||||||||||
5B | 13B | vs | 21B | 29B | |||||||||||||||
6B | 14B | vs | 22B | 30B | |||||||||||||||
7B | 15B | vs | 23B | 31B | |||||||||||||||
8B | 16B | vs | 24B | 32B |
man with all the uber-math-nerds here, thought i'd get a better response. wonder if it's the time of year :^\
By when do you need it?
I think this is quite a simple problem to solve if you brute-force it. However, I am way too busy right now (have even cut my WG activity by more than half). If you can wait a few weeks, I could help.
Overall idea:
As Amidon said, you need a number of players divisible by 4. Maybe small modifications are possible if we deal with other numbers, won't consider that now.
Given that your total number of players is quite small (I'm assuming lesser than 100), there is no issue if we use an extremely inefficient algorithm to come up with the draw. Which should be quite easy to come up with.
One would need to run the following till a solution is obtained, which will give a printable solution for N = 4k players
Number of rounds: ceil (log2N) + 1. Ceil relevant for eventual generalization for different N. +1 for the last 1v1 round.
- Random pairing initially. Then for each successive round:
- Create subgroups with people with the same number of wins. Starting from the top-most group, make all but the bottom group divisible by 4 by adding up to 3 members from the lower group. This can either be done randomly or by giving some score to each player, and chosing the x highest.
- For a particular subgroup, randomly pair teams and opponents. Keep doing this till you run through all possible combination such that you don't repeat partners or opponents. If not possible, reduce the constraint to not repeating opponents from last round, and so on.
Of course, this is not guaranteed to converge in reasonable time. And could be very slow even for something like 5000 players. But with less than 100, there should be no trouble.
games will be played 7/20. games will be played at a local park, so will need something that isn't too intensive (on the order of mins), as I can do it by hand in 5-10 but i'd rather be playing and letting the admins take care of this (who will have no clue what's going on).
Another idea - I play in 2v2 pitch (card game) tournaments. around 40 people. we play 6 rounds 2 games each round. Games to 11. Winner of each game gets a 3 point bonus.
Each team's score is a cumulative of the points they earned in each game plus the game bonus.
They have some chart that says who you play each round - so you don't play every other team - like a truncated round robin.
You could make up some thing like this and rotate the 4 players somehow.
we tried something like that last year. ended up with the top 4 never having played one another. and the other 3 didn't like that I came out on top ;^)
i think playing your partner works if you follow the winners, assuming you filter down line by line each time; but things get more complicated when starting to play with the losers brackets. think there might need to be points awarded (2=W, 1=Tie, 0=L ?).
Another try at double elimination
https://docs.google.com/spreadsheets/d/1NEjpkWSDEex1AhVeXkbxGtPOL3pzb1mtE3myh1eHvbc/edit?usp=sharing
I think this will work, but could be better structured to avoid playing with the same people twice.
Amidon37 wrote:Another try at double elimination
https://docs.google.com/spreadsheets/d/1NEjpkWSDEex1AhVeXkbxGtPOL3pzb1mtE3myh1eHvbc/edit?usp=sharing
I think this will work, but could be better structured to avoid playing with the same people twice.
that's pretty similar to what i came up with but without double elim (conserving time)
https://docs.google.com/spreadsheets/d/191TTnmB2BS86VPs3Fim40yo7mEByNi8pHz3AXP6tobA/edit?usp=sharing
now my problem is: we're looking at only having 44ish players (hoping to get up to 48) and now i need to add in W/L and Score Differential to place 2 'loser bracket' players into the 'winner bracket' to fill out the tables. (See 44/48 player tabs) you could end up with a couple 1loss players in the final...
update:
We held our tourney this past Friday. I ended up having 48 players. I ended up using the pattern in 'final_draft_48' tab of my previous post.
as mentioned in the tab: I needed to fill two spots on the undefeated tables for Round#4, so I had to rank the players after the first 3 rounds to find the best 2-1 players. Since I had to do this on the fly; I ended up using W/L & Goal Differential. Next year I hope to program this out better, and maybe use SODOS or something better.
It ended up going rather well, although a bit slow from round to round (especially 3 to 4). I hope to automate it better next year. I didn't hear any complaints about how it was seeded, so that's good I guess.
Sounds fun!