2008-10-11 10 views
32

Próbuję napisać prostą grę/narzędzie do obliczania kursów pokerowych. Wiem, że jest mnóstwo resources, które mówią o formułach do tego, ale domyślam się, że mam problem z tłumaczeniem tego na kod. Szczególnie interesuje mnie Texas Hold-em ...Jak programowo obliczyć kursy pokera?

Rozumiem, że istnieje kilka różnych podejść, z których jednym jest to, że możesz obliczyć szanse, że losujesz trochę kart na podstawie kart, które widzisz. Inne podejście polega na obliczeniu prawdopodobieństwa, że ​​wygrasz określone rozdanie. Drugie podejście wydaje się dużo bardziej skomplikowane, ponieważ musisz wprowadzić więcej danych (ilu graczy, itp.)

Nie pytam, że piszesz to dla mnie, ale niektóre sugestie w dobrym kierunku pomogłyby: -)

+0

Kiedy już to zrobisz, dodasz do licznika pot odds, więc sprowadza się do binarnej decyzji o sytuacjach call/fold? –

+0

Brak odpowiedzi, co czyni ją komentarzem/sugestią - ewaluator z otwartym kodem źródłowym w Objective-C (głównie C) i Javie można znaleźć tutaj: http://specialk-coding.blogspot.com/2010/04/texas-holdem -7-card-evaluator_23.html (link na końcu artykułu do Google Projects). – SK9

Odpowiedz

19

Oto kilka linków do artykułów, które mogłyby pomóc punktów wyjściowych: Poker Logic in C# i Fast, Texas Holdem Hand Evaluation and Analysis

„Ten fragment kodu pozwoli Ci obliczyć poker to prawdopodobieństwa w przykry sposób, przy użyciu C# i .NET.”

Podstawy teoretyczne są podane w tym Wikipedia article about Poker Probabilities oraz w tym doskonałym statistical tutorial.

Przykład kompletnego projektu napisanego w języku Objective-C, Java, C/C++ lub Python znajduje się pod adresem SpecialKEval. Dalsze linki i czytanie można znaleźć tam.

8

Symulacja Monte Carlo to powszechne podejście do obliczania kursów dla rąk pokerowych. Istnieje wiele przykładów implementacji tego rodzaju symulacji dla holdem w sieci.

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

+1

Zbudowałem tester rąk i symulator pokera, a także użyłem montecarlo do symulacji. Nie próbowałem obliczyć prawdopodobieństwa wygranej dla każdej z różnych kombinacji kart matematycznych, ale wyobrażam sobie, że byłoby to diabelnie trudne zadanie. – DPM

1

Spójrz na pokersource jeśli masz dość silne zdolności C. To nie jest proste, obawiam się, ale niektóre rzeczy, których szukasz, są złożone. Program pokerowy, który korzysta z biblioteki, prawdopodobnie zrobi wiele z tego, co chcesz, jeśli możesz uzyskać poprawny format wejściowy (nie jest to łatwe). Strony takie jak this one lub this również korzystają z tej biblioteki AFAIK.

Mimo to, mogło być gorzej, mogło być chcąc obliczyć coś skomplikowane jak Omaha Hi-Lo ...

2

PokerSource i artykuły statystyczne nie są złe sugestie. Ale najlepiej to zrobić przy pomocy symulacji Monte Carlo, użytecznego, prostego i mocnego podejścia do tego typu trudnego problemu.

To działa równie dobrze z Omaha Hi-Lo, jak to robi z Hold'em

0

Kompletny kod źródłowy gry w pokera Texas Hold'em oceniającego można znaleźć tutaj:

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

To jest zbudowany dla programu Matlab, identyfikator GUI m-kodowany, ale silnik obliczeniowy ma wartość C++.

Umożliwia obliczanie prawdopodobieństwa i prawdopodobieństwa. Na moim laptopie 2,4 Ghz można sobie poradzić przy obliczeniach 100000 10 graczy w 0,3 sekundy.

Dokładny komputer w czasie rzeczywistym :-)

+0

Jest to dość szybkie, ale nie tak szybkie - w domenie publicznej znajdują się osoby oceniające, które dają dokładne odpowiedzi (tj. Bez pobierania próbek) co najmniej ~ 10x szybciej. – SK9