Results 1 to 4 of 4

Thread: Quick adjustment, I cant seem to do

  1. #1

    Thread Starter
    Hyperactive Member
    Join Date
    Mar 2006
    Posts
    366

    Quick adjustment, I cant seem to do

    Hi, Attached is a small program that allows you to enter the cards of a round of texas holdem, then it tells you the best hand from it. It only allows you though, to find the name of the best hand when 7 cards are entered, I am trying to change it so that you can do it, when 5, 6 or 7 cards are entered, and obviously the best hand will change, depending on the number of cards. Please can someone help me, I seem to be struggling.
    (also, slight after thought, please coould you comment with 'new, or something where you change something, so i can see what i should have done. )
    Thanks
    Alex
    Attached Files Attached Files

  2. #2

  3. #3

    Thread Starter
    Hyperactive Member
    Join Date
    Mar 2006
    Posts
    366

    Re: Quick adjustment, I cant seem to do

    Why, surely there is somewhere in the code, saying to read from all 7 inputs, why cant it just be changed to 5? By the way i didnt write the original document

  4. #4
    Former Admin/Moderator MartinLiss's Avatar
    Join Date
    Sep 1999
    Location
    San Jose, CA
    Posts
    33,431

    Re: Quick adjustment, I cant seem to do

    Quote Originally Posted by youngnoviceinneedofh
    Why, surely there is somewhere in the code, saying to read from all 7 inputs, why cant it just be changed to 5? By the way i didnt write the original document
    It's not "somewhere", it's most everywhere. For example in this function where you would have to account for there being NO hand(5) or perhaps hand(4).

    VB Code:
    1. Private Function GetPokerHandValue(hand As colHand) As Type_PokerHand
    2.     Dim cardSuit As Long
    3.     Dim cardFaceValue As Long
    4.    
    5.     GetPokerHandValue.HighCard = hand(5).facevalue
    6.    
    7.     'Check for straight flush
    8.     If hand(1).suit = hand(2).suit And hand(1).suit = hand(3).suit And hand(1).suit = hand(4).suit And hand(1).suit = hand(5).suit Then
    9.         If hand(1).facevalue + 1 = hand(2).facevalue Then
    10.             If hand(2).facevalue + 1 = hand(3).facevalue Then
    11.                 If hand(3).facevalue + 1 = hand(4).facevalue Then
    12.                     If hand(4).facevalue + 1 = hand(5).facevalue Or (hand(1).facevalue = Value_2 And hand(5).facevalue = Value_Ace) Then
    13.                         GetPokerHandValue.HandType = PokerHand_StraightFlush
    14.                         If hand(1).facevalue = Value_2 And hand(5).facevalue = Value_Ace Then
    15.                             GetPokerHandValue.HighCard = hand(4).facevalue
    16.                         End If
    17.                         Exit Function
    18.                     End If
    19.                 End If
    20.             End If
    21.         End If
    22.     End If
    23.  
    24.     'Check for Four of a kind
    25.     If (hand(1).facevalue = hand(2).facevalue And hand(1).facevalue = hand(3).facevalue And hand(1).facevalue = hand(4).facevalue) Or _
    26.        (hand(2).facevalue = hand(3).facevalue And hand(2).facevalue = hand(4).facevalue And hand(2).facevalue = hand(5).facevalue) Then
    27.         GetPokerHandValue.HandType = PokerHand_FourOfAKind
    28.         If hand(4).facevalue = hand(5).facevalue Then
    29.             GetPokerHandValue.HighCard = hand(5).facevalue
    30.         Else
    31.             GetPokerHandValue.HighCard = hand(4).facevalue
    32.         End If
    33.         Exit Function
    34.     End If
    35.    
    36.     'Check for a Full House
    37.     If (hand(1).facevalue = hand(2).facevalue And hand(1).facevalue = hand(3).facevalue And hand(4).facevalue = hand(5).facevalue) Or _
    38.        (hand(3).facevalue = hand(4).facevalue And hand(3).facevalue = hand(5).facevalue And hand(1).facevalue = hand(2).facevalue) Then
    39.         GetPokerHandValue.HandType = PokerHand_FullHouse
    40.         Exit Function
    41.     End If
    42.    
    43.     'Check for a flush
    44.     If hand(1).suit = hand(2).suit And hand(1).suit = hand(3).suit And hand(1).suit = hand(4).suit And hand(1).suit = hand(5).suit Then
    45.         GetPokerHandValue.HandType = PokerHand_Flush
    46.         Exit Function
    47.     End If
    48.  
    49.     'Check for a straight
    50.     If hand(1).facevalue + 1 = hand(2).facevalue Then
    51.         If hand(2).facevalue + 1 = hand(3).facevalue Then
    52.             If hand(3).facevalue + 1 = hand(4).facevalue Then
    53.                 If hand(4).facevalue + 1 = hand(5).facevalue Or (hand(1).facevalue = Value_2 And hand(5).facevalue = Value_Ace) Then
    54.                     GetPokerHandValue.HandType = PokerHand_Straight
    55.                     If hand(1).facevalue = Value_2 And hand(5).facevalue = Value_Ace Then
    56.                         GetPokerHandValue.HighCard = hand(4).facevalue
    57.                     End If
    58.                     Exit Function
    59.                 End If
    60.             End If
    61.         End If
    62.     End If
    63.  
    64.     'Check for Three of a kind
    65.     If (hand(1).facevalue = hand(2).facevalue And hand(1).facevalue = hand(3).facevalue) Or _
    66.        (hand(2).facevalue = hand(3).facevalue And hand(2).facevalue = hand(4).facevalue) Or _
    67.        (hand(3).facevalue = hand(4).facevalue And hand(3).facevalue = hand(5).facevalue) Then
    68.         GetPokerHandValue.HandType = PokerHand_ThreeOfAKind
    69.         If hand(1).facevalue = hand(2).facevalue Then
    70.             GetPokerHandValue.HighCard = hand(3).facevalue
    71.         ElseIf hand(4).facevalue = hand(5).facevalue Then
    72.             GetPokerHandValue.HighCard = hand(5).facevalue
    73.         Else
    74.             GetPokerHandValue.HighCard = hand(4).facevalue
    75.         End If
    76.         Exit Function
    77.     End If
    78.    
    79.     'Check for two pairs
    80.     If (hand(1).facevalue = hand(2).facevalue And hand(3).facevalue = hand(4).facevalue) Or _
    81.        (hand(1).facevalue = hand(2).facevalue And hand(4).facevalue = hand(5).facevalue) Or _
    82.        (hand(2).facevalue = hand(3).facevalue And hand(4).facevalue = hand(5).facevalue) Then
    83.         GetPokerHandValue.HandType = PokerHand_TwoPairs
    84.         If (hand(1).facevalue = hand(2).facevalue And hand(3).facevalue = hand(4).facevalue) Then
    85.             GetPokerHandValue.HighCard = hand(4).facevalue
    86.         Else
    87.             GetPokerHandValue.HighCard = hand(5).facevalue
    88.         End If
    89.         Exit Function
    90.     End If
    91.    
    92.     'Check for one pair
    93.     If hand(1).facevalue = hand(2).facevalue Or _
    94.        hand(2).facevalue = hand(3).facevalue Or _
    95.        hand(3).facevalue = hand(4).facevalue Or _
    96.        hand(4).facevalue = hand(5).facevalue Then
    97.         GetPokerHandValue.HandType = PokerHand_OnePair
    98.         If hand(1).facevalue = hand(2).facevalue Then
    99.             GetPokerHandValue.HighCard = hand(2).facevalue
    100.         Else
    101.             If hand(2).facevalue = hand(3).facevalue Then
    102.                 GetPokerHandValue.HighCard = hand(3).facevalue
    103.             Else
    104.                 If hand(3).facevalue = hand(4).facevalue Then
    105.                     GetPokerHandValue.HighCard = hand(4).facevalue
    106.                 Else
    107.                     GetPokerHandValue.HighCard = hand(5).facevalue
    108.                 End If
    109.             End If
    110.         End If
    111.         Exit Function
    112.     End If
    113.    
    114.     'highest card
    115.     GetPokerHandValue.HandType = PokerHand_HighCard
    116. End Function

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width