CS 102
Assignment 9
due Tuesday 5 April at 01:00 AM
In the game of blackjack, the cards 2 through 10 are counted at their face values, regardless of suit, all face cards (jack, queen, and king) are counted as 10, and an ace is counted either as a 1 or an 11, depending on the total count of all the cards in a player's hand.
The ace is counted as 11 only if the total value of all cards in a player's hand does not exceed 21, else it is counted as a 1.
Using this information, write a C program that uses a random number generator to select three cards (a 1 initially corresponding to an ace, a 2 corresponding to a face card of two, and so on), calculate the total value of the hand appropriately, and display the value of the three cards with a printed message.
Welcome to Blackjack! You drew the: Three of Spades Jack of Clubs Ace of Hearts Your score is: 14
Table of Contents
1 From class on 3/31
#include <stdio.h> #include <stdlib.h> #include <time.h> int deal_a_card(); int rank_to_score(int rank); int main() { int c1, score; srand(time(NULL)); c1 = deal_a_card(); score = rank_to_score (c1); printf("(score was %d)\n", score); return 0; } int deal_a_card() { int r; int s; r= rand(); int rank =(r%13)+1; s= rand(); int suit =(r%4)+1; switch (rank) { case 1: printf("Ace"); break; case 11: printf("Jack"); break; case 12: printf("Queen"); break; case 13: printf("King"); break; default: printf("%d", rank); break; } switch (suit) { case 1: printf(" Of Hearts"); break; case 2: printf(" Of Spades"); break; case 3: printf(" Of Clubs"); break; case 4: printf(" Of Diamonds"); break; } return rank; } int rank_to_score (int rank) { switch (rank) { case 11: case 12: case 13: return 10; break; default: return rank; } }