1. We have moved from vBulletin to XenForo and you are viewing the site in the middle of the move. Though the functional aspect of everything is working fine, we are still working on other changes including the new design on Xenforo.
    Dismiss Notice

Poker Algorithm.

Discussion in 'C' started by dankbc1, Oct 19, 2008.

  1. dankbc1

    dankbc1 New Member

    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');  
    
    }
     
    Last edited by a moderator: Oct 19, 2008

Share This Page