D
daniel.kaner
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:
#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');
}
game? The algorithm should include the winning conditions for the
game, like straight, flush, pair, etc. Thank you so much!
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');
}