CS 102
Notes for Tuesday 5 April
- Meeting 20
- Quiz 6
Pass by reference (the C++ way).
We skipped Quiz 6.
Table of Contents
1 Solution to Blackjack assignment
#include <stdio.h> #include <stdlib.h> #include <time.h> int deal_a_card(); int rank_to_score(int rank); int main5() { int c1, c2, c3, score; srand(time(NULL)); c1 = deal_a_card(); c2 = deal_a_card(); c3 = deal_a_card(); score = rank_to_score (c1) + rank_to_score(c2) + rank_to_score(c3); if( (c1 == 1 || c2 == 1 || c3 == 1) && score <= 11 ) { printf("One ace counted high.\n"); score += 10; // one ace goes high } printf("Your score is %d\n", score); if( score > 21 ) { printf("You LOSE.\n"); } return 0; } int deal_a_card() { int rank = rand()%13+1; int suit = rand()%4; 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 0: printf(" Of Diamonds"); break; case 1: printf(" Of Hearts"); break; case 2: printf(" Of Spades"); break; case 3: printf(" Of Clubs"); break; } printf("\n"); return rank; } int rank_to_score (int rank) { switch (rank) { case 11: case 12: case 13: return 10; default: return rank; } }
2 Example with reference parameters
#include <stdio.h> #include <stdlib.h> #include <time.h> // these are REFERENCE parameters, AKA // "in-out" parameters. They get bound // to the variables provided at the call. void deal_card(int& rank, int& suit) { rank = rand()%13+1; suit = rand()%4; 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 0: printf(" Of Diamonds"); break; case 1: printf(" Of Hearts"); break; case 2: printf(" Of Spades"); break; case 3: printf(" Of Clubs"); break; } printf("\n"); } int main() { int r1, s1, r2, s2; srand(time(NULL)); deal_card(r1, s1); deal_card(r2, s2); //deal_card(5, 2); // ERROR if(s1 == s2) { printf("FLUSH\n"); } else if(r1 == r2) { printf("PAIR\n"); } else { printf("Nothing.\n"); } return 0; }