Jump to content

davyK

Members
  • Posts

    712
  • Joined

  • Last visited

Blog Comments posted by davyK

  1. Here's a Javascript routine to rank a poker hand....

     

    function rankHand()

    {
    var rank;
    // sort hand into card rank order
    for (i=1;i<=5;i++){
    for (j=i;j<=5;j++){
    if (rankHandRank > rankHandRank[j])
    {
    tmpSuit = rankHandSuit;
    tmpRank = rankHandRank;
    rankHandSuit = rankHandSuit[j];
    rankHandRank = rankHandRank[j];
    rankHandSuit[j] = tmpSuit;
    rankHandRank[j] = tmpRank;
    }
    }
    }
    // now rank the hand (1 is the highest)
    if (rankHandSuit[1] == rankHandSuit[2] && rankHandSuit[2] == rankHandSuit[3] && rankHandSuit[3] == rankHandSuit[4] && rankHandSuit[4] == rankHandSuit[5] && rankHandRank[5] == 13 && rankHandRank[4] == 12 && rankHandRank[3] == 11 && rankHandRank[2] == 10 && rankHandRank[1] == 1)
    {
    rank = 1; // royal straight flush
    }
    else if (rankHandSuit[1] == rankHandSuit[2] && rankHandSuit[2] == rankHandSuit[3] && rankHandSuit[3] == rankHandSuit[4] && rankHandSuit[4] == rankHandSuit[5] && rankHandRank[5] == (rankHandRank[4] + 1) && rankHandRank[4] == (rankHandRank[3] + 1) && rankHandRank[3] == (rankHandRank[2] + 1) && rankHandRank[2] == (rankHandRank[1] + 1))
    {
    rank = 1; // straight flush
    }
    else if (rankHandRank[1] == rankHandRank[2] && rankHandRank[2] == rankHandRank[3] && rankHandRank[3] == rankHandRank[4])
    {
    rank = 2; // 4 of a kind
    }
    else if (rankHandRank[2] == rankHandRank[3] && rankHandRank[3] == rankHandRank[4] && rankHandRank[4] == rankHandRank[5])
    {
    rank = 2; // 4 of a kind
    }
    else if (rankHandRank[1] == rankHandRank[2] && rankHandRank[2] == rankHandRank[3] && rankHandRank[4] == rankHandRank[5])
    {
    rank = 3 // full house
    }
    else if (rankHandRank[3] == rankHandRank[4] && rankHandRank[4] == rankHandRank[5] && rankHandRank[1] == rankHandRank[2]) {
    rank = 3; // full house
    }
    else if (rankHandSuit[1] == rankHandSuit[2] && rankHandSuit[2] == rankHandSuit[3] && rankHandSuit[3] == rankHandSuit[4] && rankHandSuit[4] == rankHandSuit[5])
    {
    rank = 4; // flush
    }
    else if (rankHandRank[5] == (rankHandRank[4] + 1) && rankHandRank[4] == (rankHandRank[3] + 1) && rankHandRank[3] == (rankHandRank[2] + 1) && rankHandRank[2] == (rankHandRank[1] + 1))
    {
    rank = 5; // straight
    }
    else if (rankHandRank[5] == 13 && rankHandRank[4] == 12 && rankHandRank[3] == 11 && rankHandRank[2] == 10 && rankHandRank[1] == 1)
    {
    rank = 5; // straight
    }
    else if (rankHandRank[1] == rankHandRank[2] && rankHandRank[2] == rankHandRank[3])
    {
    rank = 6; // 3 of a kind
    }
    else if (rankHandRank[2] == rankHandRank[3] && rankHandRank[3] == rankHandRank[4])
    {
    rank = 6; // 3 of a kind
    }
    else if (rankHandRank[3] == rankHandRank[4] && rankHandRank[4] == rankHandRank[5])
    {
    rank = 6; // 3 of a kind
    }
    else if (rankHandRank[1] == rankHandRank[2] && rankHandRank[3] == rankHandRank[4])
    {
    rank = 7; // 2 pair
    }
    else if (rankHandRank[2] == rankHandRank[3] && rankHandRank[4] == rankHandRank[5])
    {
    rank = 7; // 2 pair
    }
    else if (rankHandRank[1] == rankHandRank[2] && rankHandRank[4] == rankHandRank[5])
    {
    rank = 7; // 2 pair
    }
    else if (rankHandRank[1] == rankHandRank[2])
    {
    rank = 8;
    }
    else if (rankHandRank[2] == rankHandRank[3])
    {
    rank = 8;
    }
    else if (rankHandRank[3] == rankHandRank[4])
    {
    rank = 8;
    }
    else if (rankHandRank[4] == rankHandRank[5])
    {
    rank = 8;
    }
    else
    {
    rank = 0;
    }
    return rank;
    }
×
×
  • Create New...