#include <iostream>
#include <ctime>
#include <stdlib.h>
#include <time.h>
#include <string>
using namespace std;
int draw_card( int& hand , bool& has_aces , bool& has_elev , string& card_disp );
int final_score( int& hand , bool& has_elev );
int main()
{
srand(time(NULL));
int player_raw_hand = 0, dealer_raw_hand = 0;
int player_final_hand = 0, dealer_final_hand = 0;
bool player_has_aces = false, dealer_has_aces = false;
bool player_has_elev = false, dealer_has_elev = false;
int player_chips = 100, computer_chips = 100;
bool hit;
int card_id;
int suit;
int number;
//strings will be used for displaying hands
string player_string = "";
string dealer_string = "";
//MASTER GAME LOOP
while(player_chips > 0)
{
player_raw_hand=0;
player_final_hand=0;
player_has_aces=false;
player_has_elev=false;
dealer_raw_hand=0;
dealer_final_hand=0;
dealer_has_aces=false;
dealer_has_elev=false;
player_string.clear();
dealer_string.clear();
draw_card(dealer_raw_hand,dealer_has_aces,dealer_has_elev,dealer_string);
dealer_final_hand=final_score(dealer_raw_hand,dealer_has_elev);
do
{
cout<<"chips: "<<player_chips<<endl;
cout << "Player Hand: " << player_string << endl;
cout << "Dealer Hand: " << dealer_string << endl;
cout<<"player_hand: "<<player_final_hand<<endl;
cout<<", Computer hand: "<<dealer_final_hand<<endl;
cout<<"hit";
cin>>hit;
if(hit)
cout << draw_card(player_raw_hand,player_has_aces,player_has_elev,player_string) << endl;
player_final_hand=final_score(player_raw_hand,player_has_elev);
}
while(hit&&player_raw_hand <=21);
draw_card(dealer_raw_hand,dealer_has_aces,dealer_has_elev,dealer_string);
dealer_final_hand=final_score(dealer_raw_hand,dealer_has_elev);
if (player_final_hand>21)
{
cout<<"BUST !"<<endl;
cout << "Player Hand: " << player_string << endl;
cout << "Dealer Hand: " << dealer_string << endl;
cout<<"player_hand: "<<player_final_hand<<endl;
cout<<", Computer hand: "<<dealer_final_hand<<endl;
player_chips--;
}
else if(player_final_hand >= dealer_final_hand)
{
cout<<"You Win !"<<endl;
cout << "Player Hand: " << player_string << endl;
cout << "Dealer Hand: " << dealer_string << endl;
cout<<"player_hand: "<<player_final_hand<<endl;
cout<<", Computer hand: "<<dealer_final_hand<<endl;
player_chips++;
}
else
{
cout<<"lose!"<<endl;
cout << "Player Hand: " << player_string << endl;
cout << "Dealer Hand: " << dealer_string << endl;
cout<<"player_hand: "<<player_final_hand<<endl;
cout<<", Computer hand: "<<dealer_final_hand<<endl;
player_chips--;
}
}
return 0;
}
int draw_card( int& hand , bool& has_aces , bool& has_elev , string& card_disp )
{
int card_id;
int raw_val;
int card_suit;
card_id = rand()%52;
raw_val = card_id%13;
card_suit = card_id/13; //card suit is 0,1,2, or 3
//spades=0,hearts=1,clubs=2,diamonds=3
switch(raw_val)
{
case 0:
card_disp+="king ";
break;
case 1:
card_disp+="ace ";
break;
case 2:
card_disp+="2 ";
break;
case 3:
card_disp+="3 ";
break;
case 4:
card_disp+="4 ";
break;
case 5:
card_disp+="5 ";
break;
case 6:
card_disp+="6 ";
break;
case 7:
card_disp+="7 ";
break;
case 8:
card_disp+="8 ";
break;
case 9:
card_disp+="9 ";
break;
case 10:
card_disp+="10 ";
break;
case 11:
card_disp+="jack ";
break;
case 12:
card_disp+="queen ";
break;
default:
card_disp+="ERROR ";
break;
}
switch(card_suit)
{
case 0:
card_disp+=" of spades , ";
break;
case 1:
card_disp+=" of hearts , ";
break;
case 2:
card_disp+=" of clubs , ";
break;
case 3:
card_disp+=" of diamonds , ";
break;
default:
card_disp+= " of ERROR , ";
break;
}
if( raw_val == 1 ) //if we draw an ace, then automatically we "have aces"
has_aces = true;
if(raw_val == 0 || raw_val > 9)
hand+=10;
else if(raw_val > 1 && raw_val < 10)
hand+=raw_val;
else
hand++;
if( has_aces && hand+10 <= 21 )
has_elev = true;
return raw_val;
}
int final_score( int& hand , bool& has_elev )
{
if( has_elev )
return hand+10;
else
return hand;
}
Monday, November 18, 2019
Subscribe to:
Post Comments (Atom)
C++ BLACKJACK
#include <iostream> #include <ctime> #include <stdlib.h> #include <time.h> #include <string> using namesp...
-
Code #include <iostream> using namespace std; void prime_factor(int n); int main() { int n; cout<<"Enter a numbe...
-
Code #include <iostream> using namespace std; int main() { int i,j,r; cout << " Input number of rows : "; ...
-
Code #include <iostream> using namespace std; int main(){ int i=2, j, is_prime; // we set i = 2 because prime numbers start a...
No comments:
Post a Comment