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
სიმღერები poker და სათამაშო
ABC Poker
რულეტკა სისტემები
როგორ გამარჯვება რულეტკა
Martingale roulette სისტემა
შონ სისტემა Shaun
სისტემა ქუჩები (ქუჩის სისტემა)
Fibonacci სისტემა - თანაფარდობა მაგიდა
სისტემები Roulette - ექსპრესი სისტემა Parlay
Roulette სისტემები - System 63
სისტემები Roulette - Labouchere სისტემა
D'Alembert სისტემა
პოკერის მოთამაშე და gambler ფსიქოლოგიის
poker ხუმრობები და ხუმრობები
კარტი
ბონუს დეპოზიტი არ რეგისტრაციების
downswing poker
Poker ფორუმი - მიმოხილვა საუკეთესო მსოფლიოში
Poker როგორც სამუშაო - დამატებითი შემოსავლის წყარო
არ დეპოზიტის ბონუსის
მომენტალური პოკერი ფული
დისციპლინა, რომელიც არის ყველაზე პროგნოზირებადი
წესები ტერმინების
წესების ვაჭრობა დამწყებთათვის
ყველაზე დიდი გამარჯვება
ალგორითმი პოკერის PHP
ინტერვიუები ვარსკვლავები poker
Poker ტანსაცმელი - გლობალური poker მაღაზიები
no deposit poker new poker bankroll gratis bonus
poker bonus
წესები თამაში Texas Holdem - Flop - Turn - River
დილერის poker და ბრმა(blinds)
ტერმინების poker თვალსაზრისით
სათამაშო რეალურ ფულზე (პოკერი ინტერნეტი)
პოკერის ფრიროლ - უფასო ტურნირები
ისტორია World Series of Poker
2-7 Lowball Draw პოკერის თამაში ვარიანტი
888 Poker ქსელი - საიტები ქსელში
BOSS International Poker ქსელი - საიტები ქსელში
Entraction ქსელი - საიტები ქსელში
iPoker ქსელი - საიტები ქსელში
შერწყმა Gaming Network - საიტები ქსელში
Ongame ქსელი - საიტები ქსელში
საუკეთესო გაყიდვები პოკერის წიგნები
როგორ Twitter ჩამოყალიბებაში World of Poker
Viktor Blom - ვიქტორ Blom ინტერვიუ - 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 ალგორითმი პოკერის PHP
 



ჩემი ერთადერთი ზემოქმედების თამაში პოკერის უკვე რამდენიმე საათი ბოლო რამდენიმე კვირის განმავლობაში კითხულობს მეშვეობით სხვადასხვა მხრივ რეიტინგში წესები. როგორც ჩანს, გამოწვევა სწრაფად მოძიებაში გამარჯვებული თამაში არის მარტივი და ჯერ elusive. ასე რომ, იდეა მწარმოებელ რუკების შორის პოკერის ხელი და პატარა შემოსაზღვრული პირი, ვფიქრობდი, ღირს გარკვეული გამოძიება. კოდი უკან ეს სტატია არის მტკიცებულება კონცეფცია ამ მშრალი კომპიუტერული პროცედურა.

Background
თავდაპირველად, კოდი snippet შეიქმნა საპასუხოდ 4 საათიანი გამოცდა პროგრამისტი. ის შედგება შემდეგი ამოცანა:

განახორციელოს

ბიბლიოთეკა (პროგრამირების ენა თქვენი არჩევანი), რომელიც აფასებს რომლებიც გამარჯვებული (s) შორის რამდენიმე 5 განყოფილებიდან პოკერის ხელში (http://en.wikipedia.org/wiki/List_of_poker_hands). შენიშვნა ამ პროექტის, რომ თქვენ უნდა განახორციელოს მხოლოდ subset რეგულარულ პოკერის ხელში:

Flush
სამი ერთნაირი
ორი ერთნაირი
High Card
შეყვანის

კოლექცია მოთამაშეთა showdown: Player სახელი და 5 Cards (თითოეულ სასურველი ნომერი და კარტი) - მაგალითად,

Joe, 3H, 4H, 5H, 6H, 8h
Bob, 3C, 3D, 3S, 8C, 10D
Sally AC, 10C, 5C, 2S, 2C
გამოყვანის

კოლექცია გამარჯვების მონაწილე (მეტი შემთხვევაში ჰალსტუხი) - მაგალითად,

Joe
გთხოვთ, რაიმე ვარაუდები თქვენ გააკეთა.

განხორციელება
მას შემდეგ, რაც საწყის დასრულების ამოცანა, განხორციელების მომსახურება გაფართოებულ ეს მხარდაჭერა სრული კომპლექტი სტანდარტული პოკერის ხელში.

JavaScript შეირჩა მისი მოქნილობა და მარტივად გამოყენების.

ვარაუდები

უმაღლესი თანამდებობის მხრივ (როგორც პოსტი სტანდარტული პოკერის ხელის გრადაცია სისტემა, [^]) არის მომგებიანი ხელი. ყოველთვის არსებობს მინიმუმ ერთი გამარჯვებული.
რაოდენობა ხელშია არის დადებითი შემთხვევითი რიცხვი.
რაოდენობის ბარათები მხრივ პოზიტიური შემთხვევითი რიცხვი ნაკლებია, ვიდრე 13. რაოდენობის ბარათები მხრივ ნამდვილად არ აქვს, მაგრამ ეს აზრი რომ ის არ უნდა აღემატებოდეს 13.
ბარათები მხრივ მოდის ერთი deck. პროცესი შეიძლება შეცვლილია მხარდაჭერა მრავალჯერადი decks, მაგრამ ის დაკარგავს ზოგიერთი მისი გამჭვირვალობა.
თითოეული ბარათი წარმოდგენილია 2 წერილში სიტყვას, სადაც 1-ლი წერილი განსაზღვრავს წოდება (ანუ, არის კომპლექტი [1..10, J, Q, K, A]) და მე -2 წერილი განსაზღვრავს suite (ანუ, არის მითითებული [H, H, C, S])
შეყვანის შეიცავს, ერთ რიგში, სახელით მოთამაშე და ბარათები, რომ ქმნის მოთამაშეს ხელში, სადაც პირებს მძიმით გამოყოფილი. მრავალჯერადი რიგები მითითებული მრავალჯერადი მოთამაშეებს. არარის ამოწმებს ემატება, გადაამოწმონ, რომ მოთამაშეებს უნიკალური, აქვს იგივე რაოდენობის ბარათები, და ისინი იყენებენ deck ბარათების.
მოთამაშე სახელი არ შეიცავს სივრცეებს; თუ ეს ასეა, ისინი არ იქნება წარმოდგენილი გამომუშავება.
ალგორითმი

მიზანი არის ის, რომ მივანიჭოთ მნიშვნელობა მხრივ ბარათები, რომელიც ასახავს მისი ძალა / ქულების მიხედვით სტანდარტული პოკერის ხელის გრადაცია სისტემა და თავიდან აცილების აუცილებლობას დასალაგებლად, შედარების და საძიებელი ინდივიდუალური ხელშია. გამარჯვებული თამაში მოთამაშე უმაღლესი ქულა.

იმისათვის, რომ გამოთვლაც ანგარიში, ხედი თითოეულ მხრივ ორი ​​განზომილებიანი matrix. შეადგენს მთელი სვეტები გვაძლევს საკმარისი ინფორმაცია, რომ დავასკვნათ, თუ ჩვენ გვაქვს ოთხი სახის, სრული სახლი, სამი სახის, ორი წყვილი, ან ერთი წყვილი. თანხები მასშტაბით რიგები გვაძლევს საკმარისი ინფორმაცია, რომ ჩვენ გვაქვს დავასკვნათ, თუ flush, სწორი, ან სტრიტ ფლეში ჰყავდა. ბოლო ზედიზედ ასევე იძლევა მოშორებით მაღალი ბარათი და kickers.

მაგალითად, აქ არის თუ როგორ 2H, 9D, 3S, 2C, QD ჰგავს მშრალი და matrix:

დამალვა Copy კოდი
 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - +
 | | 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 => ბარათები კრებული (flush [0,5+])
 | S | | | | 1 | | | | | | | | | | | | 0 |
 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - +
 | | | | 2 | 1 | | | | | | 1 | | | 1 | | | 0 |> - row => ბარათები წოდება (N სახის, [1..4 +])
 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - +
                                                   ^ ---- Cell => ბარათები თანმიმდევრობით (სწორი, [0,5+])
ამ შემთხვევაში, ჩვენ წყვილი 3 kickers (არ არის სწორი, არ flush).

ჩვენ გამოთვლაც საწყისი მარცხნიდან მარჯვნივ, რომელიც უზრუნველყოფს, რომ ჩვენ ვიყენებთ საუკეთესო ხელმისაწვდომი ბარათები ანგარიში და ეს ალგორითმი მუშაობს ისევე, როგორც კარგად 7-ბარათი ხელში, მაგალითად.

ეს მიდგომა გვათავისუფლებს დახარისხება ბარათები, შედარება ხელში, ან ასრულებენ lookups. იგი იყენებს ფიქსირებული მეხსიერების ვალდებული იშვიათი 15 x 4 matrix. ერთი მხრივ, ის გადის მუდმივ დრო, O (1), საჭიროა, რომ მთლიანობაში მთელი რიგები და სვეტები. იმ შემთხვევაში, თუ თამაში შეიცავს n ხელში, ის მიიღებს O (n) დრო ანგარიშით მათ ყველა.

ხრიკი არის მინიჭებით ქულა ეს არის უნიკალური. განვიხილოთ შემდეგი ფორმულით:

დამალვა Copy კოდი
 ხელის კატეგორიები | Big endian | პატარა endian
 ---------------- | ------------ + --------------------
 Straight Flush | p & f -> 8 | kickers
 კარე | d4 -> 7 | d4
 Full House | p1 და K3 -> 6 | p1 + k 3 * (10 ^ 2)
 Flush | f -> 5 | kickers
 Straight | p -> 4 | kickers
 სამი სახის | K3 -> 3 | k3
 ორი წყვილი | p2 -> 2 | p2 + p1 * (10 ^ 2)
 ერთი წყვილი | p1 -> 1 | p1
 High Card | -> 0 | kickers
სადაც:

kickers = თანხა (r * (10 ^ (- 15 + i))), სადაც r არის წოდება i-ე ბარათი cardinality 1 რომელი თამაშობს
f = რაოდენობის ბარათები იგივე კომპლექტს თუ 5 ან მეტი, 0 წინააღმდეგ შემთხვევაში,
s = რაოდენობის ბარათები თანმიმდევრობით თუ 5 ან მეტი, 0 წინააღმდეგ შემთხვევაში,
d4 = r * (10 ^ -4), სადაც r არის უმაღლესი წოდება ბარათი cardinality 4
K3 = r * (10 ^ -4), სადაც r არის უმაღლესი წოდება ბარათი cardinality 3
p2 = r * (10 ^ -4), სადაც r არის მეორე უმაღლესი წოდება ბარათი cardinality 2
p1 = r * (10 ^ -4), სადაც r არის უმაღლესი წოდება ბარათი cardinality 2
შემდეგ ანგარიშით = (გარეშე || 0) * (გარეშე დიდი endian + მიხედვით პატარა endian) + kickers.

მაგალითები:

აი, როგორ 2H, 9D, 3S, 2C QD (ერთი წყვილი) ქულა გამოითვლება:

დამალვა Copy კოდი
+ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - +
| | 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 |
+ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - +
  
ხელის კატეგორიები | Big endian | პატარა endian | შედეგი
---------------- | ------------------ ------------ + | - ------------
Straight Flush | p & f -> 8 | kickers | 0
კარე | d4 -> 7 | d4 | 0
Full House | p1 და K3 -> 6 | p1 + k 3 * (10 ^ 2) | 0
Flush | f -> 5 | kickers | 3 * (10 ^ -14) + 9 * (10 ^ -13) + 12 * (10 ^ -12)
Straight | p -> 4 | kickers | 0
სამი სახის | K3 -> 3 | k3 | 0
ორი წყვილი | p2 -> 2 | p2 + p1 * (10 ^ 2) | 0
ერთი წყვილი | p1 -> 1 | p1 | 0.0002 = 2 * (10 ^ -4)
High Card | -> 0 | kickers | 1.2930000000000001e-11
  
ქულა = 1.0002000000129 = (p1) * (1 + 0.0002) + 1.2930000000000001e-11
აი, როგორ 10S, 10C, 10h, 4D, 4C (Full House) ქულა გამოითვლება:

დამალვა Copy კოდი
+ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - +
| | 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 |
+ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - +

ხელის კატეგორიები | Big endian | პატარა endian | შედეგი
---------------- | ------------------ ------------ + | - ------------
Straight Flush | p & f -> 8 | kickers | 0
კარე | d4 -> 7 | d4 | 0
Full House | p1 და K3 -> 6 | p1 + k 3 * (10 ^ 2) | 0,1004 = 0,0004 + 0,001 (10 ^ 2)
Flush | f -> 5 | kickers | 0
Straight | p -> 4 | kickers | 0
სამი სახის | K3 -> 3 | d3 | 0001 = 10 (10 ^ -4)
ორი წყვილი | p2 -> 2 | p2 + p1 * (10 ^ 2) | 0
ერთი წყვილი | p1 -> 1 | p1 | 0.0004 = 4 * (10 ^ -4)
High Card | -> 0 | kickers | 0

ქულა = 6.1004 = (p1 და k3) * (6 + 0,1004) + 0
გაითვალისწინეთ, რომ ეს შესაძლებელია, რომ აღვადგინოთ მხრივ ანგარიში.

Performance

Chrome (10.0.648.205, AMD Turion, 1.6GHz, 512KB L2, 2GB DDR2), ერთი მხრივ შეფასების იღებს ~ 1ms.

დამალვა Copy კოდი
10 -> ~ 1 ms
100 -> ~ 6 ms
1000 -> ~ 60 ms
10000 -> ~ 600 ms
100000 -> ~ 6000 ms
ის აწარმოებს იგი საკუთარ თავს, გახსნა ერთვის HTML ფაილი ბრაუზერში JavaScript ჩართულია.

სავარაუდოა, რომ იგივე განხორციელების მომსახურება სხვა ენაზე გამოიღო უკეთესი შედეგების მისაღებად.

გამოწვევები

გააზრება და დამადასტურებელი სხვადასხვა პოკერის ხელი რანგის წესები
უზრუნველყოფა min / max ღირებულება გარეშე გარეშე გადახურვა -> უფლებამოსილება 10, დიდი / პატარა endian
გაანგარიშება kickers vs მაღალი ბარათი -> უფლებამოსილება 10, cardinality
გამოყენება Ace როგორც 1 ან 14 straights -> სახელმძღვანელო გადატვირთვის მნიშვნელობა
ალტერნატიული მიდგომები (შდრ აგრეთვე)

გამოყენების ბაზაზე 13 Computations
გამოყენება რიცხვების, სადაც პროდუქტი ორი რიცხვების არის "უნიკალური" ნომერი
ნაწილი 2

სანიშნეს დასკვნა
ამუშავება გზა მოიცავს ალბათობა
განახორციელოს სხვა ენაზე (Haskell?) თუ არა საერთო შესრულების უკეთესია
კოდი

Hide   Shrink    Copy Code
var evalHand = function(input){
    if (!input) return;

    input = input.replace(/\s+/g, '').replace(/,[Jj]/g, ',11').replace
    (/,[Qq]/g, ',12').replace(/,[Kk]/g, ',13').replace(/,
    [Aa]/g, ',14').toUpperCase().split(',');

    var hand = {D: [], H: [], C: [], S:[]};
    for (var i = 1, len = input.length; i < len; i++)
    {
        input[i] && (hand[input[i].slice(input[i].length - 1)]
    [input[i].slice(0, input[i].length - 1)] = 1);
    }

    var card = function(suite, rank){return hand[suite][rank] || 0};
    var cards = function(rank){ return card('D', rank) + card('H', rank) +
    card('C', rank) + card('S', rank); };
    var kickers = function(idx){ // http://en.wikipedia.org/wiki/Kicker_(poker)       
        idx = idx || -15;
        var notplayed = Math.max(input.length - 1/*player input*/ - 5, 0);
        return function(all, cardinality, rank) {
            return (all || 0) + (((cardinality == 1) && (notplayed-- <= 0)) ?
        rank * Math.pow(10, ++idx) : 0);
        };
    }();
  
    var tag = function(a, b, always) {a = a || 0; b = Math.min(b || 0, 1);
    return (b || always) ? a + b : 0};
    var reset = function(a) { return (a < 5) ? 0 : a};

    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