Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/1computer1/slot-machine

A JS module for playing a slot machine. Also on NPM https://www.npmjs.com/package/slot-machine.
https://github.com/1computer1/slot-machine

Last synced: 6 days ago
JSON representation

A JS module for playing a slot machine. Also on NPM https://www.npmjs.com/package/slot-machine.

Awesome Lists containing this project

README

        

# About

A slot machine that's not accurate to real life at all.

# Example

```js
const { SlotMachine, SlotSymbol } = require('../src/index');

const cherry = new SlotSymbol('cherry', {
display: '🍒',
points: 10,
weight: 100
});

const money = new SlotSymbol('money', {
display: '💰',
points: 100,
weight: 50
});

const wild = new SlotSymbol('wild', {
display: '❔',
points: 10,
weight: 50,
wildcard: true
});

const machine = new SlotMachine(3, [cherry, money, wild]);
const results = machine.play();

console.log(results.visualize());
```

# Docs

### `SlotSymbol(name[, options])`

- `name` A unique name for the symbol.
- `options.display` A character to use for displaying.
- `options.points` Amount of points the symbol gives.
- `options.weight` Chance of symbol appearing relative to others.
- `options.wildcard` Whether or not the symbol is a wildcard.

Creates a new SlotSymbol instance:

- `name` The symbol's name.
- `display` The character for display.
- `points` Amount of points the symbol gives.
- `weight` Chance of symbol appearing.
- `wildcard` Whether or not the symbol is a wildcard.

### `SlotMachine(size, symbols[, random])`

- `size` Size of grid, must be odd number above 3.
- `symbols` Array of SlotSymbols to use.
- `random` Function returning number [0, 1).

Creates a new SlotMachine instance:

- `size` Size of grid.
- `symbols` Symbols to be used.
- `random` Function returning number [0, 1).

##### `.play()`

Plays the slot machine and returns the results.
`=> Results`

##### `.chanceOf(name)`

- `name` Name of a SlotSymbol.

Gets the chance of a symbol appearing.
`=> number`

### ``

The results of a slot machine play:

- `lines` The lines generated from the play, where the last two are the major and minor diagonals.
- `totalPoints` Total amount of points from won lines.
- `winCount` Amount of lines that have been won.

##### `.visualize([includeDiagonals])`

- `includeDiagonals` Whether or not to include diagonals in the visualization.

Creates a formatted string from the results.
`=> string`

### ``

The lines from a slot machine play:

- `symbols` The symbols in the line.
- `diagonal` Whether or not the line is a diagonal.
- `isWon` Whether or not the line is won.
- `points` The amount of points this line would give.