@elara-services/slots
v1.0.0
Published
A slot machine.
Downloads
1
Readme
About
A slot machine that's not accurate to real life at all.
Example
const { SlotMachine, SlotSymbol } = require('...');
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).
<SlotMachine>.play()
Plays the slot machine and returns the results.=> Results
<SlotMachine>.chanceOf(name)
name
Name of a SlotSymbol.
Gets the chance of a symbol appearing.=> number
<Results>
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.
<Results>.visualize([includeDiagonals])
includeDiagonals
Whether or not to include diagonals in the visualization.
Creates a formatted string from the results.=> string
<EvaluatedLine>
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.