O meu objetivo com este projeto é de simular o ambiente de um jogo de 21, também conhecido como blackjack. Assim, eu decidi fazer diversas funções para emular o comportamento do dealer, de um jogador iniciante, um jogador cauteloso e um estrategista. Com esse conjunto de funções você pode rodar um jogo com p jogadores, d baralhos e quaisquer combinações de arquétipos de jogadores. Além disso, também pode rodar o jogo n vezes.

Eu também fiz uma aplicação shiny para demonstrar como a simulação funciona. No aplicativo, você é limitado no número de jogadores, mas caso queira rodar o código com mais jogadores eu sugiro que olhe o respositório do GitHub. Nele você encontra as regras consideradas para a simulação e o código completo.

Caso seja familiar com a linguagem de programação R, você também pode rodar o aplicativo localmente, basta carregar a biblioteca do shiny library(shiny) e rodar o código runGitHub("blackjack-simulation", "devmedeiros", ref = "main").

O app é composto de uma barra lateral com um espaço para escolher os arquétipos, o número de baralhos a ser usados e quantas rodadas você quer simular. Dependendo de quantas rodadas você escolher a simulação pode ficar mais lenta, pois a simulação roda de acordo com as suas escolhas todas vez que clica no botão RUN SIMULATION RUN.

Na aba plot, nota-se a evolução da taxa de perda através das rodadas.

1 quer dizer que o jogador perdeu aquela rodada e um 0 quer dizer que ele ganhou.

Aplicação do shiny, aba plot

A aba game setup mostra todas as cartas distribuídas na simulação, cada carta foi entregue da esquerda para a direita e uma célula em branco quer dizer que o jogador não pediu pra receber outra carta (hit, bate).

Aplicação do shiny, aba game setup

Por fim, a aba lose rate mostra os mesmo dados da aba plot, mas em formato de tabela. Isso é útil quando se quer analisar como uma estratégia foi melhor do que outra.

Aplicação do shiny, aba lose rate