Pular para o conteúdo
[OPEN_POKER]

Pontuação do Open Poker: como a classificação realmente funciona

JJoão Carvalho||Atualizado |10 min de leitura

Aula 12 de 13: Competir e evoluir

Diferencie a pontuação da temporada da porcentagem de mãos ganhas e dos resultados de uma sessão. Conclua a aula 11, use Python 3.11 ou superior e instale as dependências do requirements.txt incluído no download.

A pontuação padrão da temporada do Open Poker é o total de fichas na sua conta e nas mesas. A porcentagem de mãos ganhas e o volume, isoladamente, não permitem prever sua posição: o tamanho dos potes, os rebuys e o campo também importam. Para conhecer toda a mecânica da temporada, incluindo os intervalos entre rebuys, consulte Como funcionam as temporadas do Open Poker. Use gerenciamento de stack e modelagem de adversários como experimentos para medir seu desempenho.

Qual é a fórmula de pontuação da classificação?

Sua pontuação na temporada é um único número:

score = chip_balance + chips_at_table

chip_balance são as fichas paradas na sua conta. chips_at_table são as fichas atualmente em jogo em uma mesa. Essa é a fórmula completa. Na configuração padrão, não há penalidade por rebuy, multiplicador por quantidade de mãos nem peso para win rate. São apenas fichas.

Todo bot começa a temporada com 5.000 fichas. Se você nunca jogar uma mão, seu total será 5.000, embora a elegibilidade para a classificação ainda exija que você jogue. Como os rebuys podem acrescentar fichas, uma pontuação acima de 5.000 não representa necessariamente lucro no poker. Ao avaliar a estratégia, acompanhe os fluxos de fichas separadamente.

Incluímos chips_at_table para eliminar uma exploração óbvia. Sem esse componente, um bot poderia sentar-se em uma mesa com 4.000 fichas, exibir apenas 1.000 na conta e parecer perdedor quando, na verdade, estivesse ganhando. A pontuação sempre reflete sua posição real. A fórmula completa e exemplos de API estão na documentação de pontuação.

Como os rebuys afetam sua pontuação?

Um rebuy dá 1.500 fichas quando seu bot quebra. Na configuração padrão não há penalidade na pontuação: as fichas recebidas são reais e entram integralmente no seu total. O que importa é o momento, não a aritmética.

Os intervalos entre rebuys impõem um custo real sem mexer na pontuação. Bots do plano gratuito esperam 5 minutos entre rebuys. Bots do plano Pro esperam 2 minutos. Se seu bot quebra a cada hora, são 5 minutos por hora sem jogar mãos, sem coletar blinds e sem subir na classificação. Ao longo de uma temporada de 14 dias, quebras frequentes se acumulam em horas de tempo perdido nas mesas.

O outro detalhe é que o rebuy restaura apenas 1.500 fichas, e não suas 5.000 originais. Um bot que quebra e faz rebuy recomeça com 30% do stack de referência. Para voltar a 5.000, precisa acumular 3.500 fichas de lucro, além do que ganharia naturalmente. A maioria dos bots não consegue.

A documentação de rebuys cobre os endpoints WebSocket e REST, além dos códigos de erro da janela de espera.

Como os cenários concretos se desenrolam?

É aqui que a matemática do volume fica interessante. Veja quatro bots hipotéticos depois de uma temporada de 14 dias, todos no plano gratuito:

BotMãosFichas (conta + mesa)RebuysPontuação
AlphaFold4.2008.20008.200
GrindBot6.1007.50057.500
SteadyEddie3805.40005.400
YoloPush9.8002.100122.100

AlphaFold vence. Jogo sólido, nenhuma quebra e 4.200 mãos acumulando vantagem.

GrindBot jogou mais mãos, mas passou um tempo real preso nos intervalos de espera (5 quebras × 5 minutos = 25 minutos obrigado a ficar de fora). Mesmo com cinco rebuys, ainda tem mais fichas do que no início, porque cada rebuy adicionou 1.500 fichas à conta. A fórmula de pontuação não penaliza esses rebuys. O custo de oportunidade os penalizou, limitando quantas mãos GrindBot pôde jogar nos horários de pico.

SteadyEddie é a lição do extremo oposto. Jogou de forma tight e cuidadosa, nunca quebrou, mas disputou apenas 380 mãos em duas semanas. Com uma amostra tão pequena, a variância domina. Sua pontuação final de 5.400 ficou pouco acima da base porque não houve mãos suficientes para a habilidade aparecer.

YoloPush é o pior caso: máximo de mãos, máximo de quebras e terminou com 2.100 fichas. Doze rebuys significam doze períodos sem jogar, além de uma estratégia que perde fichas mais rápido do que os rebuys conseguem repor. A fórmula não está punindo as quebras. A estratégia perdedora está.

Quando jogar mais ajuda e quando atrapalha?

O volume ajuda quando sua vantagem é positiva, mesmo que pouco. O volume atrapalha quando sua vantagem é negativa.

Um bot que ganha em média 0,5 ficha por mão faz 500 fichas em 1.000 mãos. O mesmo bot faz 5.000 fichas em 10.000 mãos. As vantagens se acumulam linearmente, mas a variância diminui com a raiz quadrada da quantidade de mãos. Em 200 mãos, uma vantagem de 4% na taxa de vitórias fica totalmente dentro do ruído da distribuição normal das cartas. Em 2.000 mãos, essa mesma vantagem começa a parecer real na classificação.

Um bot que perde 0,5 ficha por mão enfrenta o problema oposto. Cada mão jogada reduz sua pontuação. Para um bot perdedor, ficar de fora preserva sua pontuação melhor do que continuar jogando. O mínimo de 10 mãos para a elegibilidade na classificação é baixo o bastante para que quase qualquer bot conectado se qualifique; depois desse limite, mais mãos aceleram sua subida ou sua queda.

A maioria dos bots iniciantes está na faixa de EV negativo sem perceber. Eles veem o stack diminuir, culpam a variância e continuam jogando. A solução é corrigir a estratégia, não jogar mais mãos.

Quando ficar de fora e quando continuar jogando?

Fique de fora quando corrigir o bot for a decisão de maior EV. Continue jogando quando seu bot for lucrativo e o custo de oportunidade de desconectá-lo for real.

Uma heurística prática: se seu bot já jogou mais de 500 mãos e seu total de fichas está abaixo de 4.000, provavelmente está perdendo. Retire o bot, registre os últimos 50 históricos de mãos e procure a origem das perdas. Você estava pagando apostas no river sem nada? Desistindo demais no pré-flop? Apostando demais com mãos marginais no turn? O histórico de mãos é o dado mais barato que você terá para depurar uma estratégia.

Se seu bot está acima de 6.000 fichas e em tendência de alta, deixe-o rodando. O tempo conectado é uma vantagem competitiva nos horários de pico, quando mais adversários estão na fila. Um bot lucrativo jogando 18 horas por dia supera o mesmo bot jogando 6 horas por dia, desde que a composição das mesas seja parecida.

Os bots mais inteligentes da nossa plataforma consultam time_remaining_seconds em GET /api/season/current e ajustam o comportamento perto do fim da temporada. Se você está em 8º lugar com 6 horas restantes, é hora de ficar agressivo. Se está em 32º com 6 horas restantes, aceite a posição, preserve as fichas e comece a planejar a próxima temporada. A documentação do ciclo de vida das temporadas mostra todos os endpoints que expõem dados sobre o tempo restante.

Como funciona o mínimo de 10 mãos?

Para aparecer na classificação pública, seu bot precisa completar pelo menos 10 mãos na temporada atual. Até cruzar esse limite, sua pontuação é acompanhada, mas você não aparece. Isso filtra bots que se conectaram, entraram e saíram antes de fazer algo significativo.

Dez mãos é um limite propositalmente baixo. Queremos que a classificação mostre todo bot que esteja realmente jogando, inclusive os que acabaram de começar. O mínimo existe para evitar entradas fantasma, não para impedir a classificação. Com o rebuy automático ativado e um loop de eventos básico, um bot novo chega a 10 mãos nos primeiros minutos sentado à mesa.

Depois de passar do limite, sua posição é atualizada a cada mão. Ela é ao vivo, pública e visível para todos em openpoker.ai/leaderboard. Não há pontuação escondida nem uma classificação competitiva separada da casual. Um número, uma classificação.

Qual é a estratégia ideal para pontuar?

Três padrões separam os bots do topo do restante, e nenhum depende de algoritmos exóticos.

Maximize o tempo conectado nos horários de pico. A classificação recompensa 14 dias de jogo constante, e não uma sequência quente de 50 mãos. Rode seu bot 24 horas por dia, 7 dias por semana, com rebuy automático ativado. Já vimos bots do topo acumularem mais de 6.000 mãos em uma temporada. Bots que só rodam quando o desenvolvedor está acordado tendem, no máximo, a ficar no meio do pelotão.

Use um buy-in menor no começo e aumente quando estiver ganhando. O buy-in padrão é de 2.000 fichas (40% do seu stack). Comece com 1.000 fichas por sessão enquanto calibra o bot contra o grupo atual de jogadores. Se estiver lucrativo nas primeiras centenas de mãos, aumente para 3.000 ou 4.000 para acelerar o acúmulo. O campo buy_in na sua mensagem join_lobby controla isso.

Pare de jogar se estiver perdendo. Esta é a parte mais difícil. Um bot perdedor não fica menos negativo ao jogar mais mãos. Fica mais negativo. Se sua pontuação caiu 1.000 fichas abaixo da base e a tendência se mantém por mais de 200 mãos, a estratégia precisa de trabalho, não de mais tempo na mesa. Desconecte, depure e publique novamente.

Perguntas frequentes

Como a pontuação do meu bot na classificação do Open Poker é calculada? Sua pontuação é igual ao total de fichas na sua conta e em todas as mesas ativas. A fórmula é score = chip_balance + chips_at_table. Na configuração padrão não existe penalidade por rebuy; os rebuys aumentam seu total como qualquer outro depósito.

Minha pontuação pode ficar negativa? Não. A pontuação é a soma dos saldos de fichas, que não pode ficar abaixo de zero. A menor pontuação possível é 0, alcançada apenas quando todas as fichas foram perdidas e seu bot não consegue pagar o buy-in mínimo para jogar outra mão.

Ficar sentado em uma mesa afeta minha pontuação? Sua pontuação conta as fichas em todos os lugares: na sua conta e na mesa. Mover fichas para uma mesa não altera sua pontuação. Isso impede que bots escondam seus totais mantendo as fichas em jogo.

Quanto dura o intervalo entre rebuys? Bots do plano gratuito esperam 5 minutos entre rebuys. Bots do plano Pro esperam 2 minutos. O intervalo é uma duração fixa, independentemente de quantas vezes você tenha feito rebuy na temporada. Consulte a documentação de rebuys para saber como a API se comporta.

Qual é o número mínimo de mãos para aparecer na classificação? 10 mãos. Depois disso, seu bot é classificado pela pontuação junto com todos os demais. Não há bônus por jogar mais mãos além do benefício indireto de ter uma amostra maior, que reduz a variância.


A pontuação do seu bot é pública, ao vivo e atualizada depois de cada mão. Veja sua posição na classificação da temporada ou leia a documentação completa de pontuação para incorporar a consciência da pontuação diretamente à lógica de decisão do seu bot.

Confira o resultado da aula 12

O que muda
Calcule a pontuação usando os saldos exportados da temporada.
Saída esperada
score_fixture: 5200
Confira se funcionou
Verifique que 3200 + 2000 = 5200. Use --season-stats com uma exportação de /api/season/me e consulte a posição real na classificação.

Extraia o arquivo da aula, abra a pasta em um terminal e execute:

python -m pip install -r requirements.txt
python bot.py --lesson 12 --self-test
python bot.py --lesson 12 --hands 3 --report run.json

O teste usa dados simulados, sem conexão, e exibe checkpoint: passed. Para jogar online, você precisa de OPEN_POKER_API_KEY no ambiente de execução e de adversários disponíveis. Consulte o README incluído para configurar o bot e entender os limites de recuperação.

Todas as aulas do curso
  1. 1. Crie um bot de pôquer em Python
  2. 2. Arquitetura básica de um bot de pôquer
  3. 3. Como depurar erros de WebSocket no bot
  4. 4. Por que o bot fica sem tempo para agir
  5. 5. Matemática do pôquer para bots
  6. 6. Ranges por posição para bots de pôquer
  7. 7. Estratégia de apostas para bots de pôquer
  8. 8. Tutorial de PokerKit
  9. 9. Calculadora de equidade por Monte Carlo
  10. 10. Modelagem de adversários
  11. 11. Arquitetura avançada de um bot de pôquer
  12. 12. Como funciona a pontuação da classificação
  13. 13. Arquitetura profissional de um bot de pôquer

Continue Lendo