Go4Expert (http://www.go4expert.com/)
-   C (http://www.go4expert.com/forums/c/)
-   -   Poker Algorithm. (http://www.go4expert.com/forums/poker-algorithm-t14618/)

 dankbc1 19Oct2008 06:54

Poker Algorithm.

Does anyone here know the algorithm for texas hold em which is a poker game? The algorithm should include the winning conditions for the game, like straight, flush, pair, etc. Thank you so much!

Code:
Code:

```#include <iostream> #include <ctime> #include <cmath> #include <windows.h> #include <cstdlib> using namespace std;               int compMONEYONE, compMONEYTWO, compMONEYTHREE, compMONEYFINAL;     int compMONEY = 1000;         int playerMONEY = 1000;         int compBETONE, compBETTWO, compBETTHREE, compBETFINAL;         int placeBETONE, placeBETTWO, placeBETTHREE, placeBETFINAL;         int card[7];         int suitC[7];         int rankC[7];                 const char* rank[] = {"Ace", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King"};         const char* suit[] = {"Hearts!", "Spades!", "Diamonds!", "Shamrock!"};         int numPlayers; //        int random;                 char choice;         char PlayAgain; void preGame() {         srand(GetTickCount());             //loop so that all the cards are different, if one is the same as another, the loop restarts              do             {                 //random number from 1-52 which is a card deck                 card[0] = ((rand() % 52) + 1);                 //cout << card[0] << endl;             card[1] = ((rand() % 52) + 1);             card[2] = ((rand() % 52) + 1);             card[3] = ((rand() % 52) + 1);             card[4] = ((rand() % 52) + 1);             card[5] = ((rand() % 52) + 1);             card[6] = ((rand() % 52) + 1);             }while(card[0] == card[1] || card[0] == card[2] || card[0] == card[3] || card[0] == card[4] || card[0] == card[5] || card[0] == card[6] || card[1] == card[2] || card[1] == card[3] || card[1] == card[4] || card[1] == card[5] || card[1] == card[6] || card[2] == card[3] || card[2] == card[4] || card[2] == card[5] || card[2] == card[6] || card[3] == card[4] || card[3] == card[5] || card[3] == card[6] || card[4] == card[5] || card[4] == card[6] || card[5] == card[6]);                         //ranks - ace, one, two, three, four, five, six, seven, eight, nine, ten, jack, queen, king             //remainder of number which then goes through the console testing loop             //ranks are all different or loop restarts                             rankC[0] = (card[0] % 13);                 //cout << rank[0] << endl;                 rankC[1] = (card[1] % 13);             //cout << rank[1] << endl;                 rankC[2] = (card[2] % 13);                 //cout << rank[2] << endl;                 rankC[3] = (card[3] % 13);                 //cout << rank[3] << endl;                 rankC[4] = (card[4] % 13);                 //cout << rank[4] << endl;                 rankC[5] = (card[5] % 13);                 //cout << rank[5] << endl;                 rankC[6] = (card[6] % 13);                 //cout << rank[6] << endl;             //4 suits - hearts, spades, shamrocks, diamonds             suitC[0] = (rand() % 4);             suitC[1] = (rand() % 4);             suitC[2] = (rand() % 4);             suitC[3] = (rand() % 4);             suitC[4] = (rand() % 4);             suitC[5] = (rand() % 4);             suitC[6] = (rand() % 4);                 /*        if(numPlayers > 5 || numPlayers < 1)             {                 cout << "Please enter the number of players that you would like to include in this game(no more than 5): ";                 cin >> numPlayers;             }*/ } void betGame() {                 cout << "Player Money Total: \$" << playerMONEY << endl;         cout << "Computer Money Total: \$" << compMONEY << endl; //    random = (rand() % 1); //    if(random == 0) //    {         cout << "Small blind: \$25 put up by the computer." << endl;         cout << "Big blind: \$50 put up by the player." << endl;         cout << "Player Money Total: \$" << playerMONEY - 50 << endl;         cout << "Computer Money Total: \$" << compMONEY - 25 << endl;         compMONEYONE = compMONEY - 25; /*    }         else         {             cout << "Small blind: \$25 put up by the player." << endl;             cout << "Big blind: \$50 put up by the computer." << endl;             cout << "Player Money Total: \$" << playerMONEY - 25 << endl;             cout << "Computer Money Total: \$" << compMONEY - 50 << endl;         }*/             cout << "Player's First Card: " << rank[rankC[0]] << " of " << suit[suitC[0]] << endl;         cout << "Player's Second Card: " << rank[rankC[1]] << " of " << suit[suitC[1]] << endl;   //SECOND YOU FLIP 1 CARD AND YOU SEE YOUR CARDS AND 1 CARD -- BET #2             cout << "How much would you like to bet?";             cin >> placeBETONE;             compBETONE = (rand() % compMONEYONE);             cout << "Computer bet: " << compBETONE << endl;             cout << "Player Money Total: \$" << playerMONEY - 50 - placeBETONE << endl;             cout << "Computer Money Total: \$" << compMONEY - 25 - compBETONE << endl;             compMONEYTWO = compMONEY - 25 - compBETONE;                                     cout << "Flop First Card: " << rank[rankC[2]] << " of " << suit[suitC[2]] << endl;                 cout << "Flop Second Card: " << rank[rankC[3]] << " of " << suit[suitC[3]] << endl;                     cout << "Flop Third Card: " << rank[rankC[4]] << " of " << suit[suitC[4]] << endl;                                 placeBETTWO = -1;         while(placeBETTWO < 0 || placeBETTWO > 25)         {             cout << "How much would you like to bet?";             cin >> placeBETTWO;             compBETTWO = (rand() % compMONEYTWO);             cout << "Computer bet: " << compBETTWO << endl;             cout << "Player Money Total: \$" << playerMONEY - 50 - placeBETONE - placeBETTWO << endl;             cout << "Computer Money Total: \$" << compMONEY - 25 - compBETONE - compBETTWO << endl;             compMONEYTHREE = compMONEY - 25 - compBETONE - compBETTWO;                         cout << "Turn Card: " << rank[rankC[5]] << " of " << suit[suitC[5]] << endl;            }                 placeBETTHREE = -1;         while(placeBETTHREE < 0 || placeBETTHREE > 25)         {             cout << "How much would you like to bet?";             cin >> placeBETTHREE;             compBETTHREE = (rand() % compMONEYTHREE);             cout << "Computer bet: " << compBETTHREE << endl;             cout << "Player Money Total: \$" << playerMONEY - 50 - placeBETONE - placeBETTWO - placeBETTHREE << endl;             cout << "Computer Money Total: \$" << compMONEY - 25 - compBETONE - compBETTWO - compBETTHREE << endl;             compMONEYFINAL = compMONEY - 25 - compBETONE - compBETTWO - compBETTHREE;                       cout << "River Card: " << rank[rankC[6]] << " of " << suit[suitC[6]] << endl;;         }                 placeBETFINAL = -1;         while(placeBETFINAL < 0 || placeBETFINAL > 25)         {             cout << "How much would you like to bet?";             cin >> placeBETFINAL;                    compBETFINAL = (rand() % compMONEYFINAL);             cout << "Computer bet: " << compBETFINAL << endl;             cout << "Player Money Total: \$" << playerMONEY - 50 - placeBETONE - placeBETTWO - placeBETTHREE - placeBETFINAL << endl;             cout << "Computer Money Total: \$" << compMONEY - 25 - compBETONE - compBETTWO - compBETTHREE - compBETFINAL << endl;         }                 //WINNING CONDITIONS                 cout << "Do You Want To Play Again: " << endl;         cin >> PlayAgain; } int main() {     do     {         cout << "Welcome to Texas Hold 'Em!" << endl;         preGame();         betGame();               }while(PlayAgain == 'y');  }```

 All times are GMT +5.5. The time now is 18:15.