2008-10-11 15 views
32

Estoy tratando de escribir un juego simple/utilidad para calcular las probabilidades de poker. Sé que hay un montón de resources que hablan sobre las fórmulas para hacerlo, pero creo que tengo problemas para traducir eso al código. Particularmente, estoy interesado en Texas Hold-em ...¿Cómo calculo programáticamente las probabilidades de poker?

Entiendo que hay varios enfoques diferentes, uno de los cuales es que puede calcular las probabilidades de que dibuje alguna mano basándose en las cartas que puede ver. El otro enfoque es calcular las probabilidades de que ganes una determinada mano. El segundo enfoque parece mucho más complejo ya que tendría que ingresar más datos (cuántos jugadores, etc.)

No estoy pidiendo que me lo escriba, pero algunos empujones en la dirección correcta ayudarían: -)

+0

Una vez que lo hagas funcionar, ¿vas a sumar el cálculo de las probabilidades del pozo, por lo que se reduce a una decisión binaria para las situaciones de llamada/fold? –

+0

No es una respuesta, por lo que es un comentario/empujón: un evaluador de código abierto en Objective-C (principalmente C) y Java se puede encontrar aquí: http://specialk-coding.blogspot.com/2010/04/texas-holdem -7-card-evaluator_23.html (enlace al final del artículo a Google Projects). – SK9

Respuesta

19

Éstos son algunos enlaces a artículos, lo que podría ayudar como puntos de partida: Poker Logic in C# y Fast, Texas Holdem Hand Evaluation and Analysis

"Este fragmento de código le permitirá calcular probabilidades de póker de la manera difícil, usando C# y .NET."

Los fundamentos teóricos se dan en este Wikipedia article about Poker Probabilities y en este excelente statistical tutorial.

Un ejemplo de un proyecto completo escrito en Objective-C, Java, C/C++ o Python se encuentra en SpecialKEval. Se pueden encontrar enlaces y lecturas adicionales allí.

8

La simulación de Monte carlo es un enfoque común para obtener el cálculo de probabilidades para manos de póker. Hay muchos ejemplos de implementación de este tipo de simulación para holdem en la red.

http://www.codeproject.com/KB/game/MoreTexasHoldemAnalysis1.aspx

+1

He creado un evaluador de manos y un simulador de poker y también utilicé Montecarlo para la simulación. No intenté calcular matemáticamente las probabilidades de ganar para cada una de las combinaciones de cartas de hoyo diferentes, pero me imagino que sería una tarea diabólicamente difícil. – DPM

1

Tome un vistazo a pokersource si tiene razonablemente fuertes capacidades C. No es simple, me temo, pero algunas de las cosas que estás buscando son complejas. El programa poker-eval que usa la biblioteca probablemente hará mucho de lo que usted desea si puede obtener el formato de entrada correcto (tampoco es fácil). Los sitios como this one o this también usan esta biblioteca AFAIK.

Sin embargo, podría ser peor, podría estar esperando para calcular algo complicado como Omaha Hi-Lo ...

2

PokerSource y los artículos estadísticos no son malas sugerencias. Pero esto se hace mejor con una simulación de Monte Carlo, un enfoque útil, simple y poderoso para este tipo de problema difícil.

Funciona igualmente bien con el Omaha Hi-Lo que lo hace con Hold'em

0

código fuente completo para el evaluador de Texas Hold'em juego de póquer se puede encontrar aquí:

http://www.advancedmcode.org/poker-predictor.html

Se está construido para matlab, la ID de GUI m-coded pero el motor computacional es C++.

Permite el cálculo de probabilidades y probabilidad. Puede tratar, en mi computadora portátil de 2.4Ghz, con un cálculo de juego de 100000 10 jugadores en 0,3 segundos.

Un equipo precisa en tiempo real :-)

+0

Esto es bastante rápido pero no tan rápido: hay evaluadores en el dominio público que dan respuestas exactas (es decir, sin muestreo) al menos ~ 10 veces más rápido. – SK9

Cuestiones relacionadas