#include #include using namespace std; class poker { public: int cards, cards_used[52], face, suit, card_rank[2], pot, real1, human_fold(); int bet_amount, ai, ai2, raise_amount, limit, dan, human_bet, j, i; char choice, bet_choice, wait, bet_choice2, choice2; void get_cards(), show_cards(),card_process(), computer_ai(), fold(), raise(), find_out(); void human_bet_process(), dealcards(); int showothercards(), showcards(); }; int my_money = 20000; /* ------------------------------------------------------------------------------ -------------------------------------------------------------------------------- */ void game() { poker game; game.dealcards(); game.computer_ai(); } int main() { cout << "remember, y for yes and n for no\n"; system("pause"); system("cls"); game(); } void poker::dealcards() { //seed the random generator srand(time(NULL)); for(int loop = 0; loop < 1; loop++) {//loop begining cards = rand()%52; // randomize 52 cards cards = rand()%52; cards = rand()%52; cards = rand()%52; cards = rand()%52; while (cards_used[cards] ==1) {//inner loop begining while(i > j) { cards = rand()%52; cards = rand()%52; cards = rand()%52; //randomising the cards even more cards = rand()%52; } //inner loop end } face = cards%13; suit = cards/13; //outer loop end } //give player 1 his card switch(face) { case 0: card_rank[1] = 1; break; case 1: card_rank[1] = 2; break; case 2: card_rank[1] = 3; break; case 3: card_rank[1] = 4; break; case 4: card_rank[1] = 5; break; case 5: card_rank[1] = 6; break; case 6: card_rank[1] = 7; break; case 7: card_rank[1] = 8; break; case 8: card_rank[1] = 9; break; case 9: card_rank[1] = 10; break; case 10: card_rank[1] = 11; break; case 11: card_rank[1] = 12; break; case 12: card_rank[1] = 13; break; } //------------------------------------------------------------------------------------------------ //player 2 cards cards = rand()%52; // randomize 52 cards while (cards_used[cards] ==1) { cards = rand()%52; //changing the cards } face = cards%13; suit = cards/13; switch(face) { case 0: card_rank[2] = 2; cout << "2 \n"; break; case 1: card_rank[2] = 3; cout << "3 \n"; break; case 2: card_rank[2] = 4; cout << "4 \n"; break; case 3: card_rank[2] = 5; cout << "5 \n"; break; case 4: card_rank[2] = 6; cout << "6 \n"; break; case 5: card_rank[2] = 7; cout << "7 \n"; break; case 6: card_rank[2] = 8; cout << "8 \n"; break; case 7: card_rank[2] = 9; cout << "9 \n"; break; case 8: card_rank[2] = 10; cout << "10 \n"; break; case 9: card_rank[2] = 11; cout << "J \n"; break; case 10: card_rank[2] = 12; cout << "Q \n"; break; case 11: card_rank[2] = 13; cout << "K \n"; break; case 12: cout << "A \n"; card_rank[2] = 14; break; } real1 = card_rank[2]; } //this is the longest func,the ai void poker::computer_ai() { ai = rand()%12; ai2 = rand()%12; //------------------------------------------------ switch(card_rank[1]) { //if it sees a 2 case 1: if(ai == 1) { limit = 3000; if(ai2 == 1) { limit = 3000; raise_amount = 500; poker::raise(); } else if(ai2 == 2) { limit = 3000; raise_amount =450; poker::raise(); } } if(ai == 6) { limit = 50000; raise_amount = 4000; poker::raise(); } else { limit = 3000; raise_amount = 510; poker::raise(); } break; /*------------------------------------------------------------------------------ -------------------------------------------------------------------------------- */ //if it sees a 3 case 2: if(ai == 1) { limit = 3100; if(ai2 == 1) { limit = 3100; raise_amount = 400; poker::raise(); } else if(ai2 == 2) { limit = 4100; raise_amount = 2000; poker::raise(); } } if(ai == 2) { if(ai2 == 1) { limit = 3100; raise_amount = 775; poker::raise(); } else if(ai2 == 2) { limit = 4200; raise_amount = 2000; poker::raise(); } } else if(ai == 10) { poker::fold(); } if(ai == 6) { limit = 50000; raise_amount = 4000; poker::raise(); } else { limit = 4100; raise_amount = 2100; poker::raise(); } //more can come here break; /*------------------------------------------------------------------------------ -------------------------------------------------------------------------------- */ //if it sees a 3 case 3: if(ai == 1) { if(ai2 == 1) { raise_amount = 1600; limit = 5000; poker::raise(); } if(ai2 == 2) { raise_amount = 1500; limit = 4000; poker::raise(); } } else if(ai >1 && ai <5) { if(ai2 == 1) { limit = 2100; raise_amount = 500; poker::raise(); } else if(ai2 == 2) { limit = 2100; raise_amount = 700; poker::raise(); } } else if(ai >5 && ai< 8) { if(ai2 == 1) { limit = 2100; raise_amount = 700; poker::raise(); } else if(ai2 == 2) { limit = 2100; raise_amount = 850; poker::raise(); } } else if(ai == 10) { poker::fold(); } if(ai == 6) { limit = 50000; raise_amount = 4000; poker::raise(); } else { limit = 2100; raise_amount = 900; poker::raise(); } break; /*------------------------------------------------------------------------------ -------------------------------------------------------------------------------- */ //if it sees a 4 case 4: if(ai == 1) { if(ai2 == 1) { limit = 3000; raise_amount = 1500; poker::raise(); } if(ai2 == 2) { limit = 3000; raise_amount = 1200; poker::raise(); } else { raise_amount = 700; limit = 3000; poker::raise(); } } else if(ai >1 && ai <5) { if(ai2 == 1) { limit = 2100; raise_amount = 500; poker::raise(); } else if(ai2 == 2) { limit = 2100; raise_amount = 700; poker::raise(); } else { raise_amount = 1000; limit = 4000; poker::raise(); } } else if(ai >5 && ai< 8) { if(ai2 == 1) { limit = 2100; raise_amount = 700; poker::raise(); } else if(ai2 == 2) { limit = 2000; raise_amount = 850; poker::raise(); } else if(ai2 >2 && ai2<7) { raise_amount = 500; limit = 2000; poker::raise(); } else { raise_amount = 800; limit = 5000; poker::raise(); } } else if(ai == 6) { limit = 1000000; raise_amount = 3000; poker::raise(); } else if(ai == 10) { poker::fold(); } else { limit = 2100; raise_amount = 900; poker::raise(); } break; /*------------------------------------------------------------------------------ -------------------------------------------------------------------------------- */ //if it sees a 5 case 5: if(ai == 1) { if(ai2 == 1) { limit = 3000; raise_amount = 1500; poker::raise(); } if(ai2 == 2) { limit = 3000; raise_amount = 1200; poker::raise(); } } else if(ai >1 && ai <5) { if(ai2 = 1) { limit = 2100; raise_amount = 500; poker::raise(); } else if(ai2 == 2) { limit = 2100; raise_amount = 700; poker::raise(); } } else if(ai >5 && ai< 8) { if(ai2 == 1) { limit = 2100; raise_amount = 700; poker::raise(); } else if(ai2 == 2) { limit = 2000; raise_amount = 850; poker::raise(); } else { raise_amount = 500; limit = 3000; poker::raise(); } } else if(ai == 6) { limit = 50000; raise_amount = 4000; poker::raise(); } else if(ai == 10) { poker::fold(); } else { limit = 3000; raise_amount = 200; poker::raise(); } break; /*------------------------------------------------------------------------------ -------------------------------------------------------------------------------- */ //if it sees a 6 case 6: if(ai != 6) { if(ai2 == 1) { limit = 5000; raise_amount = 1000; poker::raise(); } else if(ai2 == 2) { limit = 3000; raise_amount = 500; poker::raise(); } } if(ai <= 4) { limit = 3000; if(ai2 = 1) { limit = 2000; raise_amount = 830; poker::raise(); } else if(ai2 == 2) { limit = 3000; raise_amount = 500; poker::raise(); } } else if(ai == 10) { poker::fold(); } else { limit = 3000; raise_amount = 700; poker::raise(); } break; /*------------------------------------------------------------------------------ --------------------------------------------------------------------------------*/ case 7: if(ai == 1) { poker::fold(); } else if(ai >1 && ai <6) { if(ai2 == 1) { limit = 2000; raise_amount = 500; poker::raise(); } else if(ai2 == 2) { limit = 3000; raise_amount = 700; poker::raise(); } } if(ai == 10) { poker::fold(); } else if(ai == 11) { poker::fold(); } else if(ai == 6) { limit = 2000; raise_amount = 430; poker::raise(); } else { raise_amount = 1000; limit = 5000; poker::raise(); } break; case 8: if(ai ==6) { limit = 50000; raise_amount = 2000; poker::raise(); } else if(ai <6 && ai >0) { if(ai2 == 1) { raise_amount = 3000; limit = 10000; poker::raise(); } else if(ai2 ==2) { limit = 2000; raise_amount = 500; poker::raise(); } else { raise_amount = 700; limit = 4000; poker::raise(); } } else if(ai >6 && ai <9) { if(ai2 == 1) { raise_amount == 1000; limit = 3000; poker::raise(); } else if(ai2 == 2) { limit = 2300; raise_amount == 650; poker::raise(); } } else { poker::fold(); } break; //if it sees a nine case 9: if(ai> 0 && ai <6) { poker::fold(); } else if(ai == 6) { limit = 50000; raise_amount = 3000; poker::raise(); } else if(ai> 7 && ai <10) { if(ai2 == 1) { limit = 6000; raise_amount = 1000; poker::raise(); } else if(ai2 == 2) { limit = 4000; raise_amount == 700; poker::raise(); } } if(ai> 10 && ai<12) { poker::fold(); } if(ai == 12) { limit = 2000; raise_amount == 600; poker::raise(); } else { raise_amount = 1000; limit = 3000; poker::raise(); } break; //if it sees a Q case 10: if(ai == 5) { limit = 6000; raise_amount = 1000; poker::raise(); } if(ai == 6) { limit = 50000; raise_amount = 2000; poker::raise(); } if(ai<5 && ai>0) { limit = 4000; raise_amount = 500; poker::raise(); } else { raise_amount = 1000; limit = 5000; poker::raise(); } break; //--------------------------------- //king case 11: if(ai == 5) { limit = 6000; raise_amount = 1000; poker::raise(); } else if(ai <5) { poker::fold(); } else if(ai >5 && ai !=6) { limit = 3000; raise_amount = 600; poker::raise(); } if(ai == 6) { limit = 50000; raise_amount = 2000; poker::raise(); } break; //---------------------------------- case 12: if(ai == 5) { limit = 6000; raise_amount = 100; poker::raise(); } if(ai == 6) { limit = 5000; raise_amount = 200; poker::raise(); } else { limit = 3000; raise_amount = 500; poker::raise(); } break; case 13: if(ai !=6) { poker::fold(); } else { if(ai2 == 1) { raise_amount = 200; limit = 600; poker::raise(); } else if(ai = 10) { poker::fold(); } if(ai == 6) { limit = 5000; raise_amount = 760; poker::raise(); } else if(ai2 == 2) { limit = 3000; raise_amount = 500; poker::raise(); } else { limit = 2000; raise_amount = 500; poker::raise(); } break; } } cout << "an error in the ai, card: " << card_rank[1] << " ai num1: " << ai << " and ai2: " << ai2; system("pause"); } /* end of the ai, yes, it does exist now, the easy part, the game process I think I might cry at the fact no one will ever see that to its fullest extent, :( *screams* :() *sleeps* ;|/| > | | ;|\| ok, it was 12:30 in the morning when I did that but now that is about 13 hours from that I will get back to it */ //if the computer raises it goes to this finction void poker::raise() {//1 card_rank[1] = card_rank[1] + 1; if(limit >= raise_amount) {//the 1st if (if it can raise that much, in case of a glitch in the ai) //it notifies you that the computer raised cout << "\n\nthe computer raised " << raise_amount << "\n"; //does the math pot = pot + raise_amount; //do you want to meet that? cout << "\nwould you like to meet the bet of " << raise_amount << " ";; cin >> bet_choice; //if yes if(bet_choice == 'y') {//2nd if begin (did you meet that) my_money = my_money - raise_amount; pot = pot + raise_amount; cout << "\nwould you like to place a bet? "; cin >> bet_choice2; } //if no, you fold else { poker::fold(); } //if you wanted to bet (see line 921) if(bet_choice2 == 'y') { poker::human_bet_process(); } //if you didnt want to (see line 921) else { find_out(); } } //if it was over the limit else { cout << "error in the ai (went over cap)"; system("pause"); }//final if end }//function end //well, are you going to win? void poker::find_out() { //show both cards cout << "player 1: "; poker::showcards(); cout << "player 2: "; poker::showothercards(); //if you won if(card_rank[1] > real1) { //the processes my_money = my_money + pot; cout << "player 1 won \nyou now have " << my_money << "\n"; pot = 0; system("pause"); system("cls"); game(); } // if it was a tie else if(card_rank[1] == real1) { cout << "\ntie\n"; my_money = my_money + pot/2; pot = 0; system("pause"); system("cls"); pot = 0; game(); } //if you lost else { cout << "you lost \n"; system("pause"); system("cls"); pot = 0; game(); } } //if you folded (option in void raise()) int poker::human_fold() { cout << "you have folded \n"; cout << "you had "; poker::showcards(); cout << "\nplay another? "; cin >> choice; if(choice == 'y') { pot = 0; system("cls"); main(); } else { return 1; } } //this finction process your bet (see void raise()) void poker::human_bet_process() { try { cout << "how much?: "; cin >> human_bet; pot = pot + human_bet; my_money = my_money - human_bet; if(limit >= human_bet) { pot = pot + human_bet; poker::find_out(); } else { poker::fold(); } } catch (...) { cout << "an error in human fold has occored"; cin >> wait; } } //if the pc folded void poker::fold() { try { cout << "\nyou have "; poker::showcards(); cout << "\nthe computer has folded, you have won\n"; my_money = my_money + pot; system("pause"); system("cls"); pot = 0; game(); } catch (...) { cout << "an error has occored in fold"; cin >> wait; } } int poker::showcards() { if(card_rank[1] == 11) cout << "J\n"; //---------------- else if(card_rank[1] == 12) cout << "Q\n"; //---------------- else if(card_rank[1] == 13) cout << "K\n"; //---------------- else if(card_rank[1] == 14) cout << "A\n"; //---------------- else cout << card_rank[1] << "\n"; } int poker::showothercards() { if(real1 == 11) { cout << "J\n"; return 0; } //---------------- else if(real1 == 12) { cout << "Q\n"; return 0; } //---------------- else if(real1 == 13) { cout << "Q\n"; return 0; } //---------------- else if(real1 == 14) { cout << "A\n"; return 0; } //---------------- else cout << real1 << "\n"; }