Poker Algorithm.

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

  1. dankbc1

    dankbc1 New Member

    Joined:
    Oct 19, 2008
    Messages:
    4
    Likes Received:
    0
    Trophy Points:
    0
    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

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice