I've written the winning conditions for pair, high card and three of a kind. However, I am very confused on how to write the winning conditions for a royal flush, straight flush, four of a kind, full house, flush, and straight. Can anyone here please point me in the right direction? I would greatly appreciate it.

My code is below:

My code is below:

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; char winner; 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 if((suitC[0] == suitC[1] && suitC[1] == suitC[2] && suitC[2] == suitC[3] && suitC[3] == suitC[4]) || (suitC[0] == suitC[1] && suitC[1] == suitC[2] && suitC[2] == suitC[3] && suitC[3] == suitC[5]) || (suitC[0] == suitC[1] && suitC[1] == suitC[2] && suitC[2] == suitC[3] && suitC[3] == suitC[6]) || (suitC[0] == suitC[1] && suitC[1] == suitC[2] && suitC[2] == suitC[4] && suitC[4] == suitC[5]) || (suitC[0] == suitC[1] && suitC[1] == suitC[2] && suitC[2] == suitC[4] && suitC[4] == suitC[6]) || (suitC[0] == suitC[1] && suitC[1] == suitC[2] && suitC[2] == suitC[5] && suitC[5] == suitC[6]) || (suitC[0] == suitC[1] && suitC[1] == suitC[3] && suitC[3] == suitC[4] && suitC[4] == suitC[5]) || (suitC[0] == suitC[1] && suitC[1] == suitC[3] && suitC[3] == suitC[4] && suitC[4] == suitC[6]) || (suitC[0] == suitC[1] && suitC[1] == suitC[3] && suitC[3] == suitC[5] && suitC[5] == suitC[6]) || (suitC[0] == suitC[1] && suitC[1] == suitC[4] && suitC[4] == suitC[5] && suitC[5] == suitC[6]) || (suitC[0] == suitC[2] && suitC[2] == suitC[3] && suitC[3] == suitC[4] && suitC[4] == suitC[5]) || (suitC[0] == suitC[2] && suitC[2] == suitC[3] && suitC[3] == suitC[4] && suitC[4] == suitC[6]) || (suitC[0] == suitC[2] && suitC[2] == suitC[3] && suitC[3] == suitC[5] && suitC[5] == suitC[6]) || (suitC[0] == suitC[2] && suitC[2] == suitC[4] && suitC[4] == suitC[5] && suitC[5] == suitC[6]) || (suitC[0] == suitC[3] && suitC[3] == suitC[4] && suitC[4] == suitC[5] && suitC[5] == suitC[6]) || (suitC[1] == suitC[2] && suitC[2] == suitC[3] && suitC[3] == suitC[4] && suitC[4] == suitC[5]) || (suitC[1] == suitC[2] && suitC[2] == suitC[3] && suitC[3] == suitC[4] && suitC[4] == suitC[6]) || (suitC[1] == suitC[2] && suitC[2] == suitC[3] && suitC[3] == suitC[5] && suitC[5] == suitC[6]) || (suitC[1] == suitC[2] && suitC[2] == suitC[4] && suitC[4] == suitC[5] && suitC[5] == suitC[6]) || (suitC[1] == suitC[3] && suitC[3] == suitC[4] && suitC[4] == suitC[5] && suitC[5] == suitC[6]) || (suitC[2] == suitC[3] && suitC[3] == suitC[4] && suitC[4] == suitC[5] && suitC[5] == suitC[6])) { if() } //THREE OF A KIND if((rankC[0] == rankC[1] && rankC[1] == rankC[2]) || (rankC[0] == rankC[1] && rankC[1] == rankC[3]) || (rankC[0] == rankC[1] && rankC[1] == rankC[4]) || (rankC[0] == rankC[1] && rankC[1] == rankC[5]) || (rankC[0] == rankC[1] && rankC[1] == rankC[6]) || (rankC[0] == rankC[2] && rankC[2] == rankC[3]) || (rankC[0] == rankC[2] && rankC[2] == rankC[4]) || (rankC[0] == rankC[2] && rankC[2] == rankC[5]) || (rankC[0] == rankC[2] && rankC[2] == rankC[6]) || (rankC[0] == rankC[3] && rankC[3] == rankC[4]) || (rankC[0] == rankC[3] && rankC[3] == rankC[5]) || (rankC[0] == rankC[3] && rankC[3] == rankC[6]) || (rankC[0] == rankC[4] && rankC[4] == rankC[5]) || (rankC[0] == rankC[4] && rankC[4] == rankC[6]) || (rankC[0] == rankC[5] && rankC[5] == rankC[6]) || (rankC[1] == rankC[2] && rankC[2] == rankC[3]) || (rankC[1] == rankC[2] && rankC[2] == rankC[4]) || (rankC[1] == rankC[2] && rankC[2] == rankC[5]) || (rankC[1] == rankC[2] && rankC[2] == rankC[6]) || (rankC[1] == rankC[3] && rankC[3] == rankC[4]) || (rankC[1] == rankC[3] && rankC[3] == rankC[5]) || (rankC[1] == rankC[3] && rankC[3] == rankC[6]) || (rankC[1] == rankC[4] && rankC[4] == rankC[5]) || (rankC[1] == rankC[4] && rankC[4] == rankC[6]) || (rankC[1] == rankC[5] && rankC[5] == rankC[6]) || (rankC[2] == rankC[3] && rankC[3] == rankC[4]) || (rankC[2] == rankC[3] && rankC[3] == rankC[5]) || (rankC[2] == rankC[3] && rankC[3] == rankC[6]) || (rankC[2] == rankC[4] && rankC[4] == rankC[5]) || (rankC[2] == rankC[4] && rankC[4] == rankC[6]) || (rankC[2] == rankC[5] && rankC[5] == rankC[6]) || (rankC[3] == rankC[4] && rankC[4] == rankC[5]) || (rankC[3] == rankC[4] && rankC[4] == rankC[6]) || (rankC[3] == rankC[5] && rankC[5] == rankC[6]) || (rankC[4] == rankC[5] && rankC[5] == rankC[6])) { cout << winner << " wins with a three of a kind!" << endl; } //PAIR else if((rankC[0] == rankC[1]) || (rankC[0] == rankC[2]) || (rankC[0] == rankC[3]) || (rankC[0] == rankC[4]) || (rankC[0] == rankC[5]) || (rankC[0] == rankC[6]) || (rankC[0] == rankC[7]) || (rankC[1] == rankC[2]) || (rankC[1] == rankC[3]) || (rankC[1] == rankC[4]) || (rankC[1] == rankC[5]) || (rankC[1] == rankC[6]) || (rankC[2] == rankC[3]) || (rankC[2] == rankC[4]) || (rankC[2] == rankC[5]) || (rankC[2] == rankC[6]) || (rankC[3] == rankC[4]) || (rankC[3] == rankC[5]) || (rankC[3] == rankC[6]) || (rankC[4] == rankC[5]) || (rankC[4] == rankC[6]) || (rankC[5] == rankC[6])) { cout << winner << " wins with a pair!" << endl; } //HIGH CARD else if(rankC[0] > rankC[1] && rankC[0] > rankC[2] && rankC[0] > rankC[3] && rankC[0] > rankC[4] && rankC[0] > rankC[5] && rankC[0] > rankC[6]) { cout << winner << " wins with a high card: " << rankC[0] << endl; } else if(rankC[1] > rankC[0] && rankC[1] > rankC[2] && rankC[1] > rankC[3] && rankC[1] > rankC[4] && rankC[1] > rankC[5] && rankC[1] > rankC[6]) { cout << winner << " wins with a high card: " << rankC[0] << endl; } 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'); }