I often play Rock Band with my friends, but we have a tough time deciding who will play what part and for how long. Here is what we've come up with as requirements
- Everyone must play every instrument an equal amount of time - To avoid hogging
- Every time a person is on an instrument, they must play with a different combination of people - To play on other people's strengths and avoid other's weaknesses
- Sitting out many songs in a row is minimized
Does anyone else have other constraints they play with?
Given these requirements, here is what we do:
- Lay the 4 instruments out and randomly put 4 people on them, and intersperse the remaining people in the gaps between instruments
- Cycle everyone through every instrument and every gap (clockwise), until we arrive back at the initial state
- Shuffle everyone like this:
- Group the people into 2 groups. Those on instruments (size
4) and those not (sizen-4) - Pick 4 people from the non-instruments and randomly put them on instruments
- If you have less than 4 people on non-instruments, select random people to stay on instruments, but change their instruments randomly
- Randomly permute the remaining people into the open spots
- Group the people into 2 groups. Those on instruments (size
- Play another round and then re-cycle
Notes:
- Designate one guitar as the Guitar, and one as the Bass. We choose the one with the solo fretboard as the Guitar.
- The singer picks the song since it is the hardest to do if you don't know the song.
- If you fail a song, if you are <50% complete, you play again, if you are >50% you move to the next instruments. If you fail again, you add your %s together.
- We don't replay the same song that we already played unless we REALLY need to.
This can work for other games, like Guitar Hero or even non-music games. Just change the number 4 to however many slots you have and run it.
I'm interested in how other people do this. I like fairness, but I also like not having to have a complicated system that requires white boards, a master planner, and a dictator.
And what kind of geek would I be if I didn't have some code to solve this problem
$ python rockband.py Paul Michelle Martin Melanie Surbhi Ziga Emily
Drums: Martin
Vocals: Ziga
Gap: Melanie
Guitar: Surbhi
Gap: Paul
Bass: Michelle
Gap: Emily
Press <Enter> once you finished a round:
Drums: Paul
Vocals: Ziga
Gap: Surbhi
Guitar: Emily
Gap: Michelle
Bass: Melanie
Gap: Martin
Press <Enter> once you finished a round:
Drums: Surbhi
Vocals: Martin
Gap: Paul
Guitar: Michelle
Gap: Melanie
Bass: Emily
Gap: Ziga
Press <Enter> once you finished a round: q
This code doesn't work very well with 8 people as they will always be playing with the same group, but at least their instruments will change. All other sizes should work well.


