# score-based-elo

> An score-based Elo system

Latest version **1.0.2** (published 2018-06-24) · MIT license · 0 weekly downloads

## Install

```sh
npm install score-based-elo
pnpm add score-based-elo
yarn add score-based-elo
bun add score-based-elo
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.2 |
| Published | 2018-06-24 |
| First published | 2018-06-24 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 2.8 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | juliansoto |
| Maintainers | juliansotop |
| Keywords | elo, elo system, rating |

## Links

- npm: https://www.npmjs.com/package/score-based-elo
- npm.io page: https://npm.io/package/score-based-elo

## Recent versions

- 1.0.2 (latest) — 2018-06-24
- 1.0.1 — 2018-06-24
- 1.0.0 — 2018-06-24

## README

#Score-based Elo system

Score-based Elo is a rating system similar to classical Elo used in different sports like chess or go, but this calculates ratings by the players' score proportion.

##Installation

In the console:
```
npm install --save score-based-elo
```
In node.js:
```javascript
const elo = require('score-based-elo');
```

##Usage

* First of all you need to import the package as seen above.

* Create a new Elo system with the `EloSystem` constructor, with the `k` factor as an argument:

```javascript
let eloSystem = new elo(32); //argument is the k factor
```
`k` factor can vary depending on the game, in chess is commonly set to 32. More info about Elo system and `k` factor in this [link](https://en.wikipedia.org/wiki/Elo_rating_system).

###EloSystem class

- *Method* `eloSystem.getNewElo(player1, player2)`
Receives two objects representing the players that are competing. `player` object must have two properties:
 - *Number* `player.score`, representing the game score obtained.
 - *Number* `player.rating`, the current Elo rating.

 Return the new `player1` rating.

- *Method* `eloSystem.setKFactor(number)`
Reset Elo K factor, a common value is 32. Always returns `undefined`.


##Example

```javascript
const elo = require('score-based-elo');

let eloSystem = new elo(32); // k factor

let player1 = {
		score: 800,
		rating: 2000
	},
	player2 = {
		score: 500,
		rating: 2200
	}
;

player1.rating = eloSystem.getNewElo(player1, player2);

// now player1 rating is 2012.0042093450425
```

---
_Source: https://npm.io/package/score-based-elo · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
