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 19:18.