Texas Holdem Online
Free Holdem Online
PokerStrategy
BankrollMob
Your Poker Cash
888 Poker Online
PokerSource
Gratis poker bonus Texas Holdem poker bonus
Play texas holdem
Play Online Poker with Titan Poker
Poker ohne einzahlung
Gutshot Straight(2014) - Steven Seagal - 5/10
Rounders (1998) - Matt Damon, Edward Norton, John Malkovich - 8/10
The Cincinnati Kid (1965) - Steve McQueen - 8/10
All In: The Poker Movie (2009) - Matt Damon - 7/10
Maverick (1994) - Mel Gibson, Jodie Foster, Graham Greene - 7/10
Casino Royale (2006) - Daniel Craig, Eva Green - 8/10
High Roller: The Stu Ungar Story (2003) - 6/10
Lucky You (2007) - Eric Bana, Drew Barrymore - 6/10
Runner Runner (2013) - Justin Timberlake, Ben Affleck, Gemma Arterton - 6/10
The Grand (2007) - Dennis Farina - 6/10
Shade (2003) - Melanie Griffith, Sylvester Stallone - 7/10
Deal (2008) - Burt Reynolds - 7/10
Bet Raise Fold (2013) - 7/10
Players (2012) - Movie - 6/10
Freeze Out (2005) - 8/10
Luckytown (2000) - Kirsten Dunst - 7/10
Casino (1995) - Robert De Niro, Sharon Stone - 8/10
Ocean's Eleven (2001) - George Clooney, Brad Pitt, Matt Damon, Julia Roberts - 8/10
Ocean's Twelve (2004) - George Clooney, Brad Pitt, Catherine Zeta-Jones, Matt Damon - 7/10
Ocean's Thirteen (2007) - George Clooney, Brad Pitt, Al Pacino - 7/10
21 (2008) - Kevin Spacey, Laurence Fishburne - 8/10
Owning Mahowny (2003) - Philip Seymour Hoffman - 7/10
Lock Stock and Two Smoking Barrels (1998) - Jason Flemyng, Jason Statham - 8/10
Revolver (2005) - Jason Statham, Ray Liotta - 7/10
The Color of Money (1986) - Tom Cruise - 7/10
Bugsy (1991) - Warren Beatty, Annette Bening - 7/10
The Hangover (2009) - Bradley Cooper - 8/10
The Hangover Part II (2011) - Bradley Cooper - 7/10
The Hangover Part III (2013) - Bradley Cooper - 7/10
Las Vegas Parano (1998) - Johnny Depp, Benicio Del Toro - 8/10
Rat Race (2001) - Rowan Atkinson, Cuba Gooding Jr. - 7/10
California Split (1974) - 7/10
The Cooler (2003) - William H. Macy, Alec Baldwin - 7/10
Vegas Vacation (1997) - Chevy Chase - 7/10
The Gambler (2014) - Mark Wahlberg - 7/10
Lesser Prophets (1997) - Scott Glenn, John Turturro - 6/10
Croupier (1998) - Clive Owen - 7/10
Two for the Money (2005) - Al Pacino, Matthew McConaughey, Rene Russo - 7/10
Atlantic City (1980) - Burt Lancaster - 8/10
Havana (1990) - Robert Redford - 7/10
Bad Lieutenant (1992) - Harvey Keitel - 7/10
House of Games (1987) - Joe Mantegna - 7/10
Sydney (1996) - Philip Seymour Hoffman, Samuel L. Jackson, Gwyneth Paltrow - 7/10
Eight Men Out (1988) - John Cusack, Charlie Sheen - 7/10
Very Bad Things (1998) - Cameron Diaz, Christian Slater - 7/10
The Good Thief (2002) - Nick Nolte, Ralph Fiennes - 6/10
Phoenix (1998) - Ray Liotta, Anthony LaPaglia - 7/10
The Big Town (1987) - Matt Dillon, Tommy Lee Jones - 6/10
Factotum (2005) - Matt Dillon, Fisher Stevens - 7/10
The Music of Chance (1993) - Mandy Patinkin, M. Emmet Walsh - 8/10
Dinner Rush (2000) - Danny Aiello - 7/10
Intacto (2001) - Leonardo Sbaraglia - 7/10
All or Nothing (2013) - 7/10
Even Money (2006) - Kim Basinger, Danny DeVito, Forest Whitaker - 7/10
Winged Creatures (2008) - Kate Beckinsale, Guy Pearce - 6/10
Guns, Girls and Gambling (2012) - Gary Oldman, Christian Slater - 5/10
Killing Them Softly (2012) - Brad Pitt - 6/10
Leaving Las Vegas (1995) - Nicolas Cage, Elisabeth Shue - 8/10
The Game (1997) - Michael Douglas, Sean Penn, Deborah Kara Unger - 8/10
In Time (2011) - Justin Timberlake, Amanda Seyfried, Olivia Wilde - 8/10
Rain Man (1988) - Dustin Hoffman, Tom Cruise - 8/10
What Happens in Vegas (2008) - Cameron Diaz, Ashton Kutcher - 7/10
Waking Ned (1998) - 8/10
Casino Jack (2010) - Kevin Spacey - 6/10
no deposit poker new poker bankroll gratis bonus
Poker ohne einzahlung
bài hát về poker và cờ bạc
ABC Poker
hệ thống trò chơi roulette
Làm thế nào để giành chiến thắng tại roulette
hệ thống roulette martingale
hệ thống shaun
hệ thống đường phố
hệ thống fibonacci
Hệ thống Roulette - hệ thống xâu
Hệ thống Roulette - Hệ thống 63
Hệ thống Roulette - Labouchere Hệ thống
Hệ thống D'Alembert
tâm lý của người chơi poker và con bạc
Truyện cười dân gian
thẻ trò chơi
Tiền thưởng đăng ký
downswing poker
Poker Forum - Đánh giá tốt nhất thế giới
Poker là một công việc - thêm một nguồn thu nhập
tiền thưởng không có tiền gửi xi / casino
tiền xi liền - tiền thưởng poker miễn phí
rằng một kỷ luật là dễ dự đoán nhất
tự điển cá cược
quy tắc cá cược cho người mới bắt đầu
Chiến thắng đậm nhất tại cược
thuật toán trò chơi poker trong PHP
cuộc phỏng vấn với các ngôi sao của poker
quần áo Poker - xi mua sắm toàn cầu
no deposit poker new poker bankroll gratis bonus
poker bonus
quy tắc của trò chơi Holdem Poker
Các đại lý trong poker
Poker Thuật ngữ - Chú giải thuật ngữ xi
Chơi tiền thật
Freeroll - miễn phí giải đấu Poker
Lịch sử của World Series of Poker
2-7 Lowball Draw chiến thuật và chiến lược
888Poker Network - 888 Poker mạng
Xem xét BOSS network
Entraction Poker mạng
xem xét iPoker mạng
Kết hợp xem xét Gaming Network
Ongame mạng
Sách bán hàng tốt nhất Poker
Làm thế nào Twitter là Định hình thế giới của Poker
Viktor Blom phỏng vấn - Isildur1
no deposit poker new poker bankroll gratis bonus
Texas hold em poker Texas Holdem Online
Spanish
Belarusian
Estonian
Bulgarian
Greek
Croatian
Finnish
Swedish
Portuguese
Taiwanese
Hungarian
Turkish
Ukrainian
Russian
Arabic
Poland
Japanese
Switzerland
Austria
Italian
Dutch
Belgium
Czech
Slovak
Brazil
German
French
Danish
Filipino
Georgian
Indonesian
Kannada
Latvian
Lithuanian
Romanian
Serbian
Slovenian
Vietnamese
Hebrew
Gratis startkapital Texas Holdem poker bonus
Texas Holdem Poker

Online Poker



Texas Hold em Poker


 
texas holdem poker thuật toán trò chơi poker trong PHP
 



tiếp xúc duy nhất của tôi với các trò chơi của poker đã được một vài giờ trong vài tuần qua đọc qua các quy tắc xếp hạng tay khác nhau. Dường như những thách thức của việc tìm kiếm nhanh chóng giành chiến thắng trong một trò chơi là đơn giản nhưng khó nắm bắt. VẬY, ý tưởng sản xuất một ánh xạ giữa một tay poker và một thực thể bị chặn nhỏ, tôi nghĩ, là giá trị một số điều tra. Mã đằng sau bài viết này là một bằng chứng của khái niệm về các thủ tục tính toán khô.

lý lịch
Ban đầu, các đoạn mã được tạo ra để đáp ứng với một nhà phát triển phần mềm kiểm tra 4 giờ. Nó bao gồm Sau nhiệm vụ:

thực hiện

Một thư viện (trong ngôn ngữ lập trình của sự lựa chọn của bạn) nào đánh giá là người chiến thắng (s) giữa một số 5 tay poker thẻ (http://en.wikipedia.org/wiki/List_of_poker_hands). Lưu ý cho dự án này mà bạn 'chỉ cần thực hiện một tập hợp con của các tay poker thường xuyên:

tuôn ra
Three of a Kind
Hai trong một Loại
thẻ cao
đầu vào

Bộ sưu tập của các cầu thủ trong các cuộc thách: Tên cầu thủ và 5 thẻ (mỗi quy định cụ thể số lượng và phù hợp của thẻ) - E.G.,

Joe, 3H, 4H, 5H, 6H, 8H
Bob, 3C, 3D, 3S, 8C, 10D
Sally AC, 10C, 5C, 2S, 2C
Đầu ra

Bộ sưu tập chiến thắng người chơi (nhiều hơn một trong trường hợp của một tie) - E.G.,

Joe
Xin vui lòng cho bất kỳ giả định bạn đã thực hiện.

Thực hiện
Kể từ khi hoàn thành ban đầu của nhiệm vụ, các thư mục thực hiện đã được mở rộng để hỗ trợ toàn bộ các tay poker tiêu chuẩn.

JavaScript đã được lựa chọn cho sự linh hoạt và dễ sử dụng của nó.

Giả định

Mặt thứ hạng cao nhất (theo hệ thống xếp hạng xi tay tiêu chuẩn, [^]) là tay chiến thắng. Luôn luôn có ít nhất một người chiến thắng.
Số tay là một số nguyên ngẫu nhiên tích cực.
Số lượng thẻ trong tay là một số nguyên ngẫu nhiên dương nhỏ hơn 13. Số lượng thẻ trong một bàn tay không thực sự quan trọng nhưng nó làm cho cảm giác đó nó sẽ không vượt 13.
Các thẻ trong một bàn tay đến từ một boong. Quá trình này có thể được sửa đổi để hỗ trợ nhiều sàn nhưng nó sẽ mất đi một số tính minh bạch của nó.
Mỗi thẻ được đại diện bởi một từ gồm 2 chữ cái, nơi thư 1 xác định thứ hạng (nghĩa là trong tập [1..10, J, Q, K, A]) và chữ thứ 2 xác định bộ phần mềm (ví dụ, được thiết lập trong [H, H, C, S])
Các đầu vào có chứa, mỗi hàng, tên của người chơi và tập các thẻ đó tạo tay của người chơi mà thực thể là bằng dấu phẩy. Nhiều hàng Chỉ định nhiều người chơi. Không có kiểm tra được thêm vào để xác minh đó các cầu thủ là duy nhất, có cùng một số thẻ, và sử dụng một bộ bài.
Tên người chơi không chứa khoảng trắng; nếu có, họ sẽ không có mặt ở đầu ra.
thuật toán

Mục tiêu là để gán giá trị cho một bàn tay của thẻ đó phản ánh sức mạnh của nó / điểm Theo hệ thống bảng xếp hạng tay của poker tiêu chuẩn và tránh sự cần thiết để sắp xếp, so sánh, và tra cứu tay cá nhân. Người chiến thắng trong một trận đấu là cầu thủ có số điểm cao nhất.

Để tính điểm số, trong xem mỗi bàn tay như một ma trận hai chiều. Tổng qua các cột cho chúng ta đủ thông tin để suy luận Cho dù chúng tôi có bốn của một loại, căn nhà đầy đủ, ba của một loại, hai cặp, hoặc một cặp. Số tiền trên các hàng cung cấp cho chúng tôi đầy đủ thông tin để suy luận Cho dù chúng ta có một tuôn ra tuôn ra, thẳng, hoặc thẳng. Hàng cuối cùng cũng tung thẻ cao và các kickers.

Ví dụ, đây là cách 2H, 9D, 3S, 2C QĐ trông giống như trong một ma trận khô:

Hide Sao chép mã
 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - +
 | | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | |
 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - +
 | D | | | | | | | | | | 1 | | | 1 | | | 0 |
 | H | | | 1 | | | | | | | | | | | | | 0 |
 | C | | | 1 | | | | | | | | | | | | | 0 | > - Col => bộ các thẻ (tuôn ra, [0,5+])
 | S | | | | 1 | | | | | | | | | | | | 0 |
 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - +
 | | | | 2 | 1 | | | | | | 1 | | | 1 | | | 0 | > - Row => thẻ thứ hạng (N của một loại, [1..4 +])
 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - +
                                                   Di ^ ---- => thẻ trong chuỗi (thẳng, [0,5+])
Trong trường hợp này, chúng ta có một cặp với 3 kickers (không thẳng, không xả nước).

Chúng tôi tính từ trái sang phải nào bảo lãnh đó trong chúng ta luôn luôn sử dụng các loại thẻ có sẵn tốt nhất cho điểm số và đó thuật toán hoạt động cũng như cho tay 7-thẻ, ví dụ.

Cách tiếp cận này sẽ giải phóng chúng ta khỏi phân loại thẻ, So tay, hoặc thực hiện tra cứu. Nó sử dụng bộ nhớ cố định ràng buộc bởi các thưa thớt 15 x 4 ma trận. Đối với một bàn tay duy nhất, nó chạy trong thời gian không đổi, O (1), cần thiết để tổng hợp trên các hàng và các cột. Nếu một trò chơi có chứa n tay, nó sẽ mất O (n) thời gian để ghi tất cả.

Bí quyết là ở giao điểm đó là 'độc đáo'. Hãy xem xét các công thức sau:

Hide Sao chép mã
 Tay Categories | Big Endian | Little Endian
 ---------------- | ------------ + --------------------
 Straight Flush | s & f -> 8 | kickers
 Bốn Of A Kind | k4 -> 7 | k4
 Full House | p1 & d3 -> 6 | p1 + k3 * (10 ^ 2)
 tuôn ra | f -> 5 | kickers
 thẳng | s -> 4 | kickers
 Ba Of A Kind | k3 -> 3 | k3
 Hai cặp | p2 -> 2 | p1 + p2 * (10 ^ 2)
 Một cặp | p1 -> 1 | p1
 Thẻ cao | -> 0 | kickers
Trong đó:

kickers = sum (r * (10 ^ (- 15 + i))), trong đó r là cấp bậc của thẻ thứ i với cardinality 1 Những đóng
f = số lượng thẻ của bộ ứng dụng tương tự nếu 5 hoặc nhiều hơn, 0 nếu ngược lại
s = số lượng thẻ trong chuỗi nếu 5 hoặc nhiều hơn, 0 nếu ngược lại
k4 = r * (10 ^ -4) trong đó r là thứ hạng cao nhất của một thẻ với cardinality 4
k3 = r * (10 ^ -4) trong đó r là thứ hạng cao nhất của một thẻ với cardinality 3
p2 = r * (10 ^ -4) trong đó r là thứ hạng cao nhất thứ hai của một thẻ với cardinality 2
p1 = r * (10 ^ -4) trong đó r là thứ hạng cao nhất của một thẻ với cardinality 2
sau đó số điểm = (loại || 0) * (về cuối nhỏ loại lớn của + về cuối nhỏ loại của) + kickers.

ví dụ:

Dưới đây là cách 2H, 9D, 3S, 2C QĐ (One Pair) điểm số được tính:

Hide Sao chép mã
+ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - +
| | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | |
+ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - +
| D | | | | | | | | | | 1 | | | 1 | | | 0 |
| H | | | 1 | | | | | | | | | | | | | 0 |
| C | | | 1 | | | | | | | | | | | | | 0 |
| S | | | | 1 | | | | | | | | | | | | 0 |
+ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - +
| | | | 2 | 1 | | | | | | 1 | | | 1 | | | 0 |
+ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - +
  
Tay Categories | Big Endian | Little Endian | kết quả
---------------- | ------------ ------------------ + | - ------------
Straight Flush | s & f -> 8 | kickers | 0
Bốn Of A Kind | k4 -> 7 | k4 | 0
Full House | p1 & d3 -> 6 | p1 + k3 * (10 ^ 2) | 0
tuôn ra | f -> 5 | kickers | 3 * (10 ^ -14) + 9 * (10 ^ -13) + 12 * (10 ^ -12)
thẳng | s -> 4 | kickers | 0
Ba Of A Kind | k3 -> 3 | k3 | 0
Hai cặp | p2 -> 2 | p1 + p2 * (10 ^ 2) | 0
Một cặp | p1 -> 1 | p1 | 0,0002 = 2 * (10 ^ -4)
Thẻ cao | -> 0 | kickers | 1.2930000000000001e-11
  
điểm số = 1,0002000000129 = (p1) * (1 + 0,0002) + 1.2930000000000001e-11
Dưới đây là cách 10S, 10C, 10H, 4D, 4C (Full House) điểm số được tính:

Hide Sao chép mã
+ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - +
| | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | |
+ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - +
| D | | | | | 1 | | | | | | | | | | | 0 |
| H | | | | | | | | | | | 1 | | | | | 0 |
| C | | | | | 1 | | | | | | 1 | | | | | 0 |
| S | | | | | | | | | | | 1 | | | | | 0 |
+ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - +
| | | | | | 2 | | | | | | 3 | | | | | 0 |
+ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - +

Tay Categories | Big Endian | Little Endian | kết quả
---------------- | ------------ ------------------ + | - ------------
Straight Flush | s & f -> 8 | kickers | 0
Bốn Of A Kind | k4 -> 7 | k4 | 0
Full House | p1 & d3 -> 6 | p1 + k3 * (10 ^ 2) | 0,1004 = 0,0004 + 0,001 (10 ^ 2)
tuôn ra | f -> 5 | kickers | 0
thẳng | s -> 4 | kickers | 0
Ba Of A Kind | k3 -> 3 | k3 | 0001 = 10 (10 ^ -4)
Hai cặp | p2 -> 2 | p1 + p2 * (10 ^ 2) | 0
Một cặp | p1 -> 1 | p1 | 4 = 0,0004 * (10 ^ -4)
Thẻ cao | -> 0 | kickers | 0

score = 6,1004 = (p1 & k3) * (6 + 0,1004) + 0
Lưu ý rằng nó có thể khôi phục các tay từ điểm số.

hiệu suất

Trong Chrome (10.0.648.205, AMD Turion, 1.6GHz, 512KB L2, 2GB DDR2), một đánh giá bàn tay duy nhất mất ~ 1ms.

Hide Sao chép mã
10 -> ~ 1 ms
100 -> ~ 6 ms
1000 -> ~ 60 ms
10000 -> ~ 600 ms
100000 -> ~ 6000 ms
Nó được điều hành nó cho mình, mở tập tin HTML đính kèm trong một trình duyệt với JavaScript được bật.

Nó có khả năng đó vào thư mục thực hiện cùng một ngôn ngữ khác sẽ mang lại kết quả tốt hơn.

Những thách thức

Hiểu và xác minh poker xếp hạng quy tắc bàn tay khác nhau
Đảm bảo min / giá trị tối đa cho mỗi danh mục mà không chồng chéo -> quyền hạn của 10, lớn về cuối nhỏ /
Tính toán của kickers vs thẻ cao -> quyền hạn của 10, cardinality
Áp dụng Ace là 1 hoặc 14, trong đoạn thẳng -> nhãn hiệu giá trị thiết lập lại
Phương pháp tiếp cận thay thế (x Xem thêm)

Sử dụng cơ sở tính toán 13
Sử dụng các số nguyên tố mà tích của hai số nguyên tố là một số 'độc đáo'
phần 2

Thêm một Kết luận
Hãy đến với một cách để kết hợp xác suất
Thực hiện trong một ngôn ngữ khác (Haskell?) Để xem dù hiệu suất tổng thể là tốt hơn


Thu nhỏ giấu Sao chép mã
var evalHand = function (input) {

    var cardsofrank = [];
    var hc = 0;         // high card
    var k4 = 0;         // four of a kind
    var k3 = 0;         // three of a kind
    var p2 = 0;         // two pair / two one pairs
    var p1 = 0;         // one pair / two of a kind
    var k = 0;          // kickers
    var sd = cards(14); // straight discriminant: count A as 1 or 14
    for (var i = 2; i < 15; i++)
    {
        cardsofrank[i] = cards(i);
        hc = (cardsofrank[i]) ? i * Math.pow(10, -4) : hc;
        k4 = (cardsofrank[i] === 4) ? hc : k4;
        k3 = (cardsofrank[i] === 3) ? hc : k3;
        p2 = (cardsofrank[i] === 2) ? p1 : p2;
        p1 = (cardsofrank[i] === 2) ? hc : p1;
        k = kickers(k, cardsofrank[i], i);
        sd = tag(sd, cardsofrank[i], sd >= 5);
    };
    var s = reset(sd); // straight

    if (s && cards(14) && !cards(13))
    { k = k - 14 * Math.pow(10, sd); } // adjust for A as 1 or 14

    var cardsofsuite = {D: 0, H: 0, C: 0, S: 0};
    for (var i = 2; i < 15; i++)
    {
        cardsofsuite['D'] = tag(cardsofsuite['D'], card('D', i), true);
        cardsofsuite['H'] = tag(cardsofsuite['H'], card('H', i), true);
        cardsofsuite['C'] = tag(cardsofsuite['C'], card('C', i), true);
        cardsofsuite['S'] = tag(cardsofsuite['S'], card('S', i), true);
    }
    var f = reset(cardsofsuite['D']) + reset(cardsofsuite['H']) +
    reset(cardsofsuite['C']) + reset(cardsofsuite['S']);  // flush

    var score = function(cond, bigendian, littleendian)
    { return (cond ? 1 : 0) * (bigendian + littleendian); };

    return {
        player: input[0], 
        score: (score(s && f, 8, k)                              // straightflush
                || score(k4, 7, k4)                              // fourofakind
                || score(p1 && k3, 6, p1 + k3 * Math.pow(10, 2)) // fullhouse
                || score(f, 5, k)                                // flush
                || score(s, 4, k)                                // straight
                || score(k3, 3, k3)                              // threeofakind
                || score(p2, 2, p2 + p1 * Math.pow(10, 2))       // twopair
                || score(p1, 1, p1))                             // onepair
            + score(hc, 0, k)                                    // highcard - tie breaker
    };
};


 
 
Template by Poker Template & USA Online Casino