Go4Expert

Go4Expert (http://www.go4expert.com/)
-   C (http://www.go4expert.com/forums/c/)
-   -   help modifying code (http://www.go4expert.com/forums/help-modifying-code-t5526/)

JamC 29Jul2007 07:32

help modifying code
 
I have a program evaluating a straight hand in poker: Here is my code:
Code:

int numInRank[14];

cin.get(rankCh);
    switch (toupper(rankCh))
    {
      case '-1':            exit(0);
      case '?':          rank = 0; break;
      case 'A':          rank = 1; break;
      case '2':          rank = 2; break;
      case '3':          rank = 3; break;
      case '4':          rank = 4; break;
      case '5':          rank = 5; break;
      case '6':          rank = 6; break;
      case '7':          rank = 7; break;
      case '8':          rank = 8; break;
      case '9':          rank = 9; break;
      case 'T':          rank = 10; break;
      case 'J':          rank = 11; break;
      case 'Q':          rank = 12; break;
      case 'K':          rank = 13; break;

bool isStraight(int numInRank[]){
    int count = 0;
    for(int i = 1; i  < 14; i++){
        if(numInRank[i] != 0){
            count++;
            if(i == 13 && numInRank[1] != 0) count++;
        }else{
            count = 0;
        }
        if(count == 5) return true;
    }
    return false;
}

I would like to modify the above code to handle A high and A low straights- I sized my array to 14 instead of 13 to hold both...
Any suggestions...

DaWei 29Jul2007 16:46

Re: help modifying code
 
The way I do it, for a 5-card hand, is to ensure that there are no duplicates, find the minimum and maximum values, and see if there is a difference of 4 between max and min. If it doesn't produce a straight, and min is 1, I reassign the A to its high value, set it as max, find the new min, and do it again.


All times are GMT +5.5. The time now is 07:12.