Adendo à coluna 125 do Pergunte ao Mago
Olá Michael,
Na sua coluna de 13 de dezembro de 2004, havia uma pergunta sobre como os pagamentos são determinados, e você deu uma resposta razoável. No entanto, ela não aborda a questão de como os pagamentos seriam processados em uma máquina não mecânica, e eu apostaria que, internamente, máquinas mecânicas e não mecânicas são gerenciadas da mesma forma atualmente. Posso dar uma resposta baseada em uma implementação que fiz de um sistema que permite a especificação de máquinas caça-níqueis arbitrárias. Não posso afirmar se é assim que a IGT faz, embora eu me surpreendesse se fosse substancialmente diferente disso.
Provavelmente, este texto será bastante extenso, então, se preferir encaminhá-lo para quem fez a pergunta original, não há problema; ou, se quiser publicá-lo em seu site, também não há problema. Se desejar mais detalhes sobre como publicá-lo em seu site, terei prazer em fornecer mais informações.
Para simplificar, vou ignorar o fator ligeiramente complicador das rodas virtuais; não porque sejam excessivamente complicadas, mas sim porque tornam a discussão ainda mais longa.
Primeiro, um pouco de terminologia:
Símbolos: As belas imagens que aparecem nas rodas.
Para a máquina em questão, temos um conjunto de símbolos:
{ Vermelho Sete, Branco Sete, Azul Sete,
Barras vermelhas, barras brancas, barras azuis,
Espaços em branco}Vou abreviar da seguinte forma:
{ R7, W7, B7, RB, WB, BB, B }
viewport: A seção visível da máquina caça-níqueis.
No caso da máquina Vermelha/Branca/Azul mencionada, se for a máquina que penso ser, a viewport tem três (3) linhas e três (3) colunas. Isto será indicado como uma viewport de tamanho [3, 3].
Eis como a área de visualização se parece; as coordenadas são mostradas em cada posição: Roda 0 Roda 1 Roda 2
Linha 0 [0, 0] [1, 0] [2, 0]
Linha 1 [0, 1] [1, 1] [2, 1]
Linha 2 [0, 2] [1, 2] [2, 2]
Linha de pagamento: As coordenadas na área visível para combinações de símbolos vencedores.
Para a máquina em questão, vamos assumir que existe apenas uma linha de pagamento, a linha do meio da área de visualização.
Podemos representar isso como um conjunto de coordenadas [x, y]:
{[0, 1], [1, 1], [2, 1]} <- linha do meio da viewport [3, 3]
Pagamento: O número de moedas devolvidas por uma combinação vencedora.
Os pagamentos são frequentemente baseados no número de moedas jogadas. Neste caso, vamos assumir que apenas uma moeda pode ser jogada e, portanto, há apenas um pagamento para cada combinação vencedora de símbolos.
Então, digamos que o pagamento para {R7, W7, B7} seja de 500 moedas quando 1 moeda é jogada; nesse caso, você teria um pagamento de:
{ 1, 500, [R7, W7, B7] }
O primeiro item é o número de moedas jogadas, o segundo é o número de moedas a serem pagas e o terceiro são os símbolos que geram esse pagamento.
Posição da roda: O número de parada da roda na linha superior da janela de visualização.
A consulta original indicava que as paradas vencedoras para [R7, W7, B7] nas roletas físicas eram [8, 8, 8]. Consideraremos que a parada número 7 é imediatamente anterior à parada número 8. Consideraremos também que a parada 9 segue imediatamente a parada 8 nas roletas físicas.
Relembrando a viewport mostrada acima, veja como a viewport ficaria para uma combinação vencedora de [R7, W7, B7]:
Roda 0 Roda 1 Roda 2 Linha 0 parada 7/?? parada 7/?? parada 7/?? Linha 1 parada 8/R7 parada 8/W7 parada 8/B7 Linha 2 parada 9/?? parada 9/?? parada 9/??
Ok, agora temos a base para ver como uma combinação vencedora pode ser determinada instantaneamente, com base nos símbolos das rodas, nas posições das rodas, nas linhas de pagamento e nos prêmios.
Lembre-se de que todas as máquinas caça-níqueis de hoje são computadores — embora sejam mecânicas, internamente são apenas computadores executando um programa, então podemos imaginar como o programa funciona:
- O jogador insere uma moeda e inicia uma rodada.
- O programa de caça-níqueis gera 3 números aleatórios para determinar a posição das roletas.
- [as rodas giram]
- Preencha a área de visualização com os símbolos que aparecem nas rodas.
- O pagamento é correspondido.
- Os pagamentos correspondentes são efetuados.
- Ensaboar. Enxaguar. Repetir.
O passo 5 é a parte aparentemente complicada, que é o ponto crucial da pergunta original. Mas lembre-se de que temos as linhas de pagamento, os pagamentos e o conteúdo da tela para nos ajudar. Com essas ferramentas, é muito fácil determinar as combinações vencedoras.
Considerando nosso exemplo, temos o seguinte:
Janela de visualização: Roda 0 Roda 1 Roda 2
Linha 0 parada 7/?? parada 7/?? parada 7/??
Linha 1 parada 8/R7 parada 8/W7 parada 8/B7
Linha 2 parada 9/?? parada 9/?? parada 9/??
Linha de pagamento:{[0, 1], [1, 1], [2, 1]}
Pagamento: {1.500, [R7, W7, B7]}
O programa de slots obterá os símbolos a partir das coordenadas das linhas de pagamento na área visível da tela:
dados de visualização de coordenadas da linha de pagamento
{[0, 1], [1, 1], [2, 1]} == [8/R7, 8/W7, 8/B7]
Em seguida, o sistema irá compará-los com os símbolos associados ao pagamento:
informações de pagamento de dados de visualização
[8/R7, 8/W7, 8/B7] == { 1.500, [R7, W7, B7] } ?
Se houver uma correspondência, o valor do pagamento é concedido; caso contrário, o jogo aguarda que o jogador insira outra moeda.
A chave para toda essa mágica está em uma tabela de coordenadas das linhas de pagamento e uma tabela de pagamentos — cada giro da roda é combinado instantaneamente para encontrar os vencedores.
E tudo isso acontece *muito*, *muito* rápido.
Utilizando meu sistema de especificação de slots, implementei o Wizard of Odds Fruit Slot como prova de conceito e como teste de sanidade para garantir que o valor real do pagamento (produzido pelo meu sistema) esteja correto em um grande número de simulações.
Consigo simular 10 milhões de giros da roleta em cerca de 10 a 12 segundos (Dell Inspiron 9100 de 3,2 GHz).
Isso equivale a 833.333 giros de caça-níqueis por segundo, muito mais rápido do que você jamais conseguiria apertar o botão GIRAR!
Se a pessoa que fez a pergunta original, ou qualquer outra pessoa, quiser mais informações, pode entrar em contato comigo diretamente pelo endereço ***, mas, por favor, não publique meu e-mail no seu site. - TH