chesstournament-ranking-criteria

Most common ranking criteria in chess tournaments to use with chesstournament.js

npm install chesstournament-ranking-criteria
2 downloads in the last week
8 downloads in the last month

chesstournament.js-ranking-criteria

This module provides the most common ranking and seeding criteria in chess tournaments and can be used with chesstournament.js.

Installation

npm install chesstournament-ranking-criteria

Usage with chesstournament.js

var Criteria = require('chesstournament-ranking-criteria');

// create seeding
tournament.players.seeding.criteria = [ Criteria.Alphabetical(), Criteria.Random() ];
tournament.players.seeding.generate();

// get MatchPoints
tournament.teams['some Team'].getValue(Criteria.MatchPoints());

Criteria

Alphabetical

Compare the given Players or Teams by their names (the .name.toString() method is used).

criterion = Criteria.Alphabetical();

Buchholz

Compare the given Players or Teams by their Buchholz, higher is better.

criterion = Criteria.Buchholz();

// -- or --

var options = {
  useFIDEmode: true,    // use FIDE mode for unplayed games of opponents,
  lowestCuts: 0,        // for Median Buchholz specify cuts
  highestCuts: 0
}
criterion = Criteria.Buchholz(options, pointValues);

Buchholz Sum

Compare the given Players or Teams by the sum of their opponents' Buchholz, higher is better.

criterion = Criteria.BuchholzSum();

// -- or --

var options = ...; // same as for Criteria.Buchholz()
criterion = Criteria.Buchholz(options, pointValues);

Match Points

Compare the given Teams by their match points, higher is better.

criterion = Criteria.MatchPoints();

// -- or --

var options = {
  winMode: 'more than opponent',  // or 'more than half'
};
criterion = Criteria.MatchPoints(options, pointValues);

Points

Compare the given Players or Teams by their points, higher is better.

criterion = Criteria.Points();

// -- or --

criterion = Criteria.Points(pointValues);

Random

Create a random ranking for the Players or Teams.

criterion = Criteria.Random();

Rating

Compare the given Players or Teams by their ratings (the .getRating() method is used), higher is better.

// with options being the same as in Player.getRating() or Team.getReating()
criterion = Criteria.Rating(some, options);

Seeding

Compare the given Players or Teams by their seeding, lower is better.

criterion = Criteria.Seeding();

Title

Compare the given Players by their FIDE-title by the following order: 'GM' > 'IM' > 'WGM' > 'WIM' > 'FM' > 'WFM' > 'CM' > none

criterion = Criteria.Title();

Use reverse order

In case you want to use one of the defined criteria but only with the reverse sort order, simply use the Criteria.reverse() method:

// create criterion which reverses the current seeding
criterion = Criteria.reverse(Criteria.Seeding);
npm loves you