string deck[52] = {
" sk"," sq"," sj","s10"," s9"," s8",
" s7"," s6"," s5"," s4"," s3"," s2"," sa",
" hk"," hq"," hj","h10"," h9"," h8",
" h7"," h6"," h5"," h4"," h3"," h2"," ha",
" dk"," dq"," dj","d10"," d9"," d8",
" d7"," d6"," d5"," d4"," d3"," d2"," da",
" ck"," cq"," cj","c10"," c9"," c8",
" c7"," c6"," c5"," c4"," c3"," c2"," ca"};
int points[52] = {
10,10,10,10,9,8,7,6,5,4,3,2,1,
10,10,10,10,9,8,7,6,5,4,3,2,1,
10,10,10,10,9,8,7,6,5,4,3,2,1,
10,10,10,10,9,8,7,6,5,4,3,2,1};
const int game_over = 1;
const int FOREVER = 1;
void shuffle(string *str_ptr, int *points_ptr){
string str_temp = " ";
int x = 0, y = 0, points_temp = 0;
unsigned seed = unsigned (time(NULL));
srand(seed);
for (int i = 0; i < 52; i++){
y = rand()%52;
x = rand()%52;
str_temp = str_ptr[x];
str_ptr[x] = str_ptr[y];
str_ptr[y] = str_temp;
points_temp = points_ptr[x];
points_ptr[x] = points_ptr[y];
points_ptr[y] = points_temp;
}//for
}//shuffle()
int check_win(int player,int dealer){
if((player < 21 && dealer > 21) || player == 21){
cout<<"Player Wins"<<endl;
return(game_over);
}
if((dealer < 21 && player > 21) || dealer == 21){
cout<<"Dealer Wins"<<endl;
return(game_over);
}
return(0);
}//check_win()
int main(){
int player = 0, card_count = 0,dealer = 0;
char ch = ' ';
shuffle(deck,points);
cout<< "Dealer "<<"Player"<<endl;
dealer += points[card_count];
cout<<deck[card_count++]<<" "<<dealer<<endl;
player += points[card_count];
cout<<" "<<deck[card_count++]<<" "<<player<<endl;
while(FOREVER){
cout<<"Hit Me , Dealer, or Exit h,d,x - ";
cin>>ch;
switch(ch){
case 'x':
return(0);
break;
case 'h':
player += points[card_count];
cout<<" "<<deck[card_count++]<<" "<<player<<endl;
if(check_win(player,dealer) == game_over)return(0);
break;
case 'd':
dealer += points[card_count];
cout<<deck[card_count++]<<" "<<dealer<<endl;
if(check_win(player,dealer) == game_over)return(0);
break;
default:
cout<<"Ilegal Key";return(0);
break;
}//switch
if(card_count > 51){cout<<"Runaway Loop";break;}
}//while
return 0;
}//main()