Por trás de cada giro de slot há um pequeno trecho de código que produz um número, e o número decide onde cada rolo para. Este post explica como esse tipo de gerador funciona em geral, usando um gerador de brinquedo pequeno o bastante para calcular à mão. O gerador abaixo foi inventado para a aritmética. A ficha do Brasslight Slots não informa como o jogo escolhe seus resultados, então nada aqui descreve o código desse app. Descreve o método padrão.
Pseudoaleatório, não aleatório
Um computador segue instruções, então não consegue jogar uma moeda. O que ele pode fazer é rodar um gerador pseudoaleatório de números (PRNG): uma regra fixa que transforma um número no seguinte, de modo que a sequência pareça sem padrão para qualquer teste comum. Três partes importam.
- Estado. O número oculto, ou números, que o gerador carrega entre um sorteio e outro.
- Regra de atualização. Um cálculo fixo que avança o estado e produz uma saída.
- Semente. O estado inicial. A mesma semente gera a mesma sequência, sempre.
A semente costuma vir de algo imprevisível, como o relógio do sistema ou a entropia do sistema operacional, para que cada sessão comece em um ponto diferente. Depois disso, a regra faz o trabalho.
Um gerador que você pode rodar no papel
Um dos projetos mais antigos é o gerador congruencial linear: multiplica-se o estado por uma constante, soma-se outra constante e guarda-se o resto da divisão por um módulo. O nosso usa módulo 16:
próximo = (5 × atual + 3) mod 16
Comece pela semente 7. Então 5 × 7 + 3 = 38, e 38 mod 16 = 6. Em seguida, 5 × 6 + 3 = 33, e 33 mod 16 = 1. Depois 5 × 1 + 3 = 8. Seguindo, temos 6, 1, 8, 11, 10, 5, 12, 15, 14, 9 como as primeiras dez saídas. Neste brinquedo, a saída é simplesmente o estado.
Rodando por 16 passos, cada número inteiro de 0 a 15 aparece exatamente uma vez: 6, 1, 8, 11, 10, 5, 12, 15, 14, 9, 0, 3, 2, 13, 4, 7. A décima sétima saída é 6 de novo, e toda a sequência se repete. O comprimento desse ciclo é o período, e aqui ele é 16.
Mapeando um número para uma parada do rolo
O gerador fornece números. O jogo precisa de paradas. Como descrito em tiras de rolos e paradas, um rolo é uma lista de posições, então o mapeamento é um único passo: pegue o número e use-o como posição.
Digamos que cada rolo tenha 16 paradas, numeradas de 0 a 15. Então uma saída de 6 significa a parada 6, e uma saída de 11 significa a parada 11. Um giro de cinco rolos usa cinco saídas em sequência, uma por rolo. A partir da semente 7, o primeiro giro usa 6, 1, 8, 11 e 10 para os rolos 1 a 5, e o segundo giro usa as cinco seguintes, 5, 12, 15, 14 e 9.
Quando os números não dividem exatamente
Geradores reais produzem intervalos bem maiores, muitas vezes de 32 bits, que é 232 = 4,294,967,296 valores possíveis. Se um rolo tem 20 paradas, o atalho comum é pegar o resto da divisão por 20. Mas 4,294,967,296 não é múltiplo de 20: é 20 × 214,748,364 + 16. Assim, 16 paradas recebem 214,748,365 valores brutos cada, e 4 paradas recebem 214,748,364. A diferença é de um valor em cerca de 214 milhões, pequena demais para importar, embora um código cuidadoso a elimine descartando os valores que sobram e sorteando de novo.
Por que um giro não prevê o seguinte
Nosso gerador de brinquedo é um modelo ruim de independência. Depois de ver uma saída, você conhece a próxima com certeza: depois do 6 vem sempre o 1. Quem conhecesse a regra e visse um número poderia prever todos os giros. Ele também tem só 16 estados, então pode produzir apenas 16 giros diferentes, um por estado inicial, enquanto rolos independentes de 16 paradas permitiriam 165 = 1,048,576.
Geradores sérios resolvem os dois problemas com escala e projeto. O Mersenne Twister, um gerador de uso geral muito difundido, tem período de 219937 − 1, um número com mais de 6,000 dígitos, então nenhum jogador chegará ao fim do ciclo. Na prática, o resultado de um giro não carrega nenhuma informação útil sobre o próximo. Essa é a propriedade descrita em por que um slot nunca está devendo: a máquina não tem memória de resultados recentes sobre os quais aja, nem um cronograma que esteja tentando alcançar.
Um gerador é uma regra determinística com um estado oculto. Sua saída é convertida em um número de parada, uma por rolo, e o que importa para a justeza das probabilidades é que cada parada seja igualmente provável e que a sequência seja difícil de prever.
O que o mapeamento faz com as probabilidades
O gerador não conhece símbolos. Ele só produz números de parada. As probabilidades de um símbolo vêm de quantas paradas o exibem, que é a regra de contagem sobre tamanho do post sobre a fita dos rolos. Com 16 paradas e um símbolo em 2 delas, o rolo para nele com probabilidade 2 ÷ 16 = 12.5%.
Uma verificação que você pode fazer
Escolha qualquer semente de 0 a 15 e rode a regra de brinquedo por 16 passos: cada número de 0 a 15 deve aparecer uma vez. Reinicie a partir da mesma semente e você terá o mesmo giro, que é o que uma semente significa.
Brasslight Slots: Casino Games é uma slot de 5 rolos com tema de gatos, com 243 formas de vitória, bônus Yarn Pick, roleta de prêmios diária e giro Turbo e Auto. Usa apenas moedas virtuais, não há dinheiro real nela, e moedas e gemas não têm valor em dinheiro.