Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <ctime>
- #include <iostream>
- 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";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement