---
# System prepended metadata

title: Слоты

---

# Слоты

Есть N символов пусть это будут
```javascript
const symbols = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I']
```
Каждому символу соотвествует картинка на барабане.


При инициализации игры получаешь таблицу выплат. Это хэш-таблица где соответственно каждой выигрышной комбинации стоит множитель выигрыша.

_просьба самому придумать значения сюда, пожалуйста. тк у меня все наработки в спб_

```javascript
function getPayoutTable() {
    return {
        'AAA': 500,
        'BAA': 20
        'BAB': 30
    }

}
const payoutTable = getPayoutTable()
```
Это нужно чтобы можно было показать юзеру эту таблицу выплат.


По нажатию на экран (или на рычаг), ты на бэк кидаешь запрос, крутишь хуйню, с сервера прилетает три символа (например `ABC`), множитель из таблицы, баланс юзера и сумма выигрыша.

на бэке это выглядит примерно так:
```javascript

const BALANCE = 777

function spin(bet) {
    const randomValues = [
        Math.floor(Math.random() * symbols.length),
        Math.floor(Math.random() * symbols.length),
        Math.floor(Math.random() * symbols.length)
    ]
    
    const combination = symbols[randomValues[0]] + symbols[randomValues[1]] + symbols[randomValues[2]]
    
    const multiplier = payoutTable[combination]
    let balance
    let payout =  0
    if (multiplier !== undefined) {
        payout = (bet * (multiplier - 1))
        balance  = BALANCE + payout
    } else {
        balance = BALANCE - bet
    }
    
    return {
            balance: balance,
            combination: combination,
            multiplier: multiplier,
            payout: payout
        }
}

```


ВОЗМОЖНО, сюда еще будет прилетать параметр 'animation', чтобы на разный выигрыш были разные анимации. Либо определять анимацию по размеру выигрыша на фронте.







