Swiss
Players with equal records meet each round, without rematches.
| Team | P | W | D | L | +/- | Pts |
|---|---|---|---|---|---|---|
| 1Hawks | 1 | 1 | 0 | 0 | 0 | 3 |
| 2Falcons | 0 | 0 | 0 | 0 | 0 | 0 |
| 3Wolves | 0 | 0 | 0 | 0 | 0 | 0 |
| 4Herons | 0 | 0 | 0 | 0 | 0 | 0 |
| 5Lynx | 0 | 0 | 0 | 0 | 0 | 0 |
| 6Orcas | 0 | 0 | 0 | 0 | 0 | 0 |
| 7Ravens | 0 | 0 | 0 | 0 | 0 | 0 |
| 8Bison | 0 | 0 | 0 | 0 | 0 | 0 |
| 9Cobras | 0 | 0 | 0 | 0 | 0 | 0 |
Swiss
Round 1
- FalconsOrcas
- WolvesRavens
- HeronsBison
- LynxCobras
- HawksBye
import { nextSwissRound, swiss, swissRoundsLeft } from 'react-brackets';
let stage = swiss(players, { rounds: 5 }); // round one is paired straight away
// after every match of the round has a result:
if (swissRoundsLeft(stage) > 0) stage = nextSwissRound(stage);- Round one pairs the top half against the bottom half (1 v 5, 2 v 6…).
- Later rounds pair players on the same record, highest first, and never repeat a pairing.
- With an odd field, the lowest-ranked player without a bye sits out and gets a win.
roundsdefaults to⌈log₂(players)⌉, enough to find one unbeaten player.
nextSwissRound throws if the current round is unfinished or every round has been played, so your UI can't get out of step.
Every option, with its type and default, is in the API reference.