In a thread 4 years ago sourisdudesert said:
tl;dr: Guarantee that the first player will be different than the previous game. Randomize everything else.
----
In the same thread, sourisdudesert summarized the current situation:
An improvement on this would meet these criteria:
1. pick a random first player out of the set of players that were not first in the previous game.
2. shuffle the order of everyone else, including the previous first player.
Pseudocode:
It's true that this does not guarantee that in a given, e.g., 20 4-player rematches, that each of those four players starts exactly 5 games. All that it says is that the first player will alternate. But, that feels like a better trade-off than the current situation, where those four players _always_ play immediately after one and only one of their opponents, game after game.
Challenge accepted!If you suggest me a rotation method that works for all games, whatever the number of players is, I'm more than willing to implement it
tl;dr: Guarantee that the first player will be different than the previous game. Randomize everything else.
----
In the same thread, sourisdudesert summarized the current situation:
At now the method is:
_ last player to play in the previous matchs is now 1st to play
_ all remaining players are playing afterwards in same order.
So with 3 players:
ABC => CAB => BCA
With 4 players:
ABCD => DABC => CDAB => BCDA
- This works very nicely for two-player games, because friends alternate initiative.
- For many other games, this is frustrating for some, where they very consistently have to follow after one particular player who may have a play style that vastly affects their neighbor. Yes, everyone gets an equal number games as the first player, but most (good) 3+ player games are not nearly as affected by this as they are by relative order.
- And then, for games with simultaneous action selection, like 7 Wonders, this has no upside at all, which was acknowledged pretty early on when that game was the first to be excluded
An improvement on this would meet these criteria:
- per sourisdudesert: "works for all games, whatever the number of players is", so that it can be cleanly implemented and easily explained
- it would alternate the first player turns of 2 player games, which was the original and very popular reason for this work
- it would not have Player Y follow Player X in game after game after game
1. pick a random first player out of the set of players that were not first in the previous game.
2. shuffle the order of everyone else, including the previous first player.
Pseudocode:
Code: Select all
order = [A, B, C, D] // inherited from previous game
previous_p1 = order.popleft() // order = [B, C, D], previous_p1 = A
shuffle(order) // order = [D, B, C]
new_p1 = order.pop() // order = [D, B], new_p1 = C
order.append(previous_p1) // order = [D, B, A]
shuffle(order) // order = [B, A, D]
order.appendleft(new_p1) // order = [C, B, A, D]