roundrobin
Version:
A round-robin scheduler used in different tournaments
46 lines (37 loc) • 1.84 kB
Markdown
# Round Robin
[](https://www.npmjs.org/package/roundrobin)
[](http://travis-ci.org/clux/roundrobin)
[](https://david-dm.org/clux/roundrobin)
[](https://coveralls.io/r/clux/roundrobin)
A simple round robin tournament match scheduler using the standard [scheduling algorithm](http://en.wikipedia.org/wiki/Round-robin_tournament#Scheduling_algorithm).
## Usage
Simply give the number of players (with an optional players array), and it will spit out the array of rounds necessary:
```js
var robin = require('roundrobin');
robin(6);
[ [ [ 1, 6 ], [ 2, 5 ], [ 3, 4 ] ],
[ [ 5, 1 ], [ 6, 4 ], [ 2, 3 ] ],
[ [ 1, 4 ], [ 5, 3 ], [ 6, 2 ] ],
[ [ 3, 1 ], [ 4, 2 ], [ 5, 6 ] ],
[ [ 1, 2 ], [ 3, 6 ], [ 4, 5 ] ] ]
// or with names supplied
robin(6, ['clux', 'lockjaw', 'pibbz', 'xeno', 'e114', 'eclipse']);
[ [ [ 'clux', 'eclipse' ], [ 'lockjaw', 'e114' ], [ 'pibbz', 'xeno' ] ],
[ [ 'e114', 'clux' ], [ 'eclipse', 'xeno' ], [ 'lockjaw', 'pibbz' ] ],
[ [ 'clux', 'xeno' ], [ 'e114', 'pibbz' ], [ 'eclipse', 'lockjaw' ] ],
[ [ 'pibbz', 'clux', ], [ 'xeno', 'lockjaw' ], [ 'e114', 'eclipse' ] ],
[ [ 'clux', 'lockjaw' ], [ 'pibbz', 'eclipse' ], [ 'xeno', 'e114' ] ] ]
```
### Home/Away Matches
In version `2.0.0` or greater, the outputted order of the match arrays denote which player is "home" or "away":
```js
[ 'away', 'home' ] // index 0 is away and index 1 is home
```
This can be used to indicate home/away in sports, white/black in chess, etc.
## Installation
Install from npm:
```bash
$ npm install roundrobin
```
## License
MIT-Licensed. See LICENSE file for details.