Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

#include #include #include void shuffle (int wDeck[][13]); void deal (const int wDeck[][13], int hand[][ 2 ],const char *wFace[], const char *wSuit[]); void pair( int hand[][

image text in transcribed

#include #include #include

void shuffle (int wDeck[][13]); void deal (const int wDeck[][13], int hand[][ 2 ],const char *wFace[], const char *wSuit[]); void pair( int hand[][ 2 ], char *wSuit[], char *wFace[] ); void threeOfKind( int hand[][ 2 ], char *wSuit[], char *wFace[] ); void fourOfKind( int hand[][ 2 ], char *wSuit[], char *wFace[] ); void flushHand( int hand[][ 2 ], char *wSuit[], char *wFace[] ); void straight( int hand[][ 2 ], char *wSuit[], char *wFace[] );

int main (void) { /* initialize suit array */ const char *suit[4] = {"Hearts", "Diamonds", "Clubs", "Spades"};

/* initialize face array */ const char *face[13] = {"Ace", "Deuce", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King"};

/* initalize deck array */ int deck[4][13] = {0}; /* represents hand */ int hand[ 5 ][ 2 ];

srand ((unsigned) time (NULL)); /* seed random-number generator */

shuffle (deck); deal (deck, hand,face, suit);

pair( hand, suit, face ); threeOfKind( hand, suit, face); fourOfKind( hand, suit, face ); flushHand( hand, suit, face); straight(hand, suit, face ); return 0; }

/* shuffle cards in deck */

void shuffle (int wDeck[][13]) { int row = 0; /* row number */ int column = 0; /*column number */ int card = 0; /* card counter */

/* for each of the 52 cards, choose slot of deck randomly */ for (card = 1; card

/* place card number in chosen slot of deck */ wDeck[row][column] = card; } }

/* deal cards in deck */ void deal (const int wDeck[][13],int hand[][ 2 ], const char *wFace[], const char *wSuit[]) { int row = 0; /* row number */ int column = 0; /*column number */ int card = 0; /* card counter */

int r = 0; /* counter for position in the hand */

printf( "The hand is: " );

/* loop to distrubute the cards */ for ( card = 1; card

for ( row = 0; row

for ( column = 0; column

if ( wDeck[ row ][ column ] == card ) { hand[ r ][ 0 ] = row; hand[ r ][ 1 ] = column; printf( "%5s of %-8s ", wFace[ column ], wSuit[ row ] ); ++r; } /* end if */

printf( " " ); } /* end function deal */

void pair( int hand[][ 2 ], char *wSuit[], char *wFace[] ) { /* counter that records how many cards of each rank are in the hand */ int counter[ 13 ] = { 0 };

int row, pr; /* loop counters */

/* record how many cards of each rank are in the hand */ for ( row = 0; row

/* print result if there is a pair */ for ( pr = 0; pr

if ( counter[ pr ] == 2 ) printf( "The hand contains a pair of %ss. ", wFace[ pr ] ); } /* end function pair */

void threeOfKind( int hand[][ 2 ], char *wSuit[], char *wFace[] ) { /* counter that records how many cards of each rank are in the hand */ int counter[ 13 ] = { 0 };

int row, thr; /* loop counters */

/* record how many cards of each rank are in the hand */ for ( row = 0; row

/* print result if there is a three of a kind */ for ( thr = 0; thr

if ( counter[ thr ] == 3 ) printf( "The hand contains three %ss. ", wFace[ thr ] ); } /* end function threeOfKind */

/* determines if there is a four of a kind in the hand */ void fourOfKind( int hand[][ 2 ], char *wSuit[], char *wFace[] ) { /* counter that records how many cards of each rank are in the hand */ int counter[ 13 ] = { 0 };

int row, fr; /* loop counters */

/* record how many cards of each rank are in the hand */ for ( row = 0; row

/* print result if there is a four of a kind */ for ( fr = 0; fr

if ( counter[ fr ] == 4 ) printf( "The hand contains four %ss. ", wFace[ fr ] ); } /* end function fourOfKind */

void flushHand( int hand[][ 2 ], char *wSuit[], char *wFace[] ) { /* counter that records how many cards of each rank are in the hand */ int counter[ 13 ] = { 0 };

int row, fl; /* loop counters */

/* record how many cards of each rank are in the hand */ for ( row = 0; row

counter[ hand[ row ][ 0 ] ]++;

/* print result if there is a four of a kind */ for ( fl = 0; fl

if ( counter[ fl ] == 5 ) printf("The hand contains flush with %ss. ", wSuit[ fl ] ); } /* end function flushHand */

void straight( int hand[][ 2 ], char *wSuit[], char *wFace[] ) { int counter[ 13 ] = { 0 }; int row = 0; int st =0; while(counter[row] == 0) counter[ hand[ row ][ 1 ] ]++;; for(; row 0; row++) st++; if(st == 5) { printf(" It straight "); } } /*end of straight function */

III. Overview & Requirements: Write a program that allows a user to play 5-Card-Draw Poker against the computer Start with the following example code supplied by Deitel &Deitel (example code). This will help you get started with the game of Poker. Please read this site to learn the rules of Poker have a working Poker game!! g/wiki/5 card _draw. Complete the following step and you will Adapted from Deitel & Deitel's C How to Program (6th Edition): (1) In order to complete the game of 5-card-draw poker, you should complete the following functions (a) (5 pts) Modify the card dealing function provided in the example code so that a five- card poker hand is dealt. (b) (5 pts) Write a function to determine if the hand contains a pair. (c) (5 pts) Write a function to determine if the hand contains two pairs (d) (5 pts) Write a function to determine if the hand contains three of a kind (e.g. three jacks) (e) (5 pts) Write a function to determine if the hand contains four of a kind (e.g. four aces) (f) (5 pts) Write a function to determine if the hand contains a flush (i.e. all five cards of the same suit) (g) (5 pts) Write a function to determine if the hand contains a straight (i.e. five cards of consecutive face values) (2) (20 pts) Use the unctions developed in (1) to deal two five-card poker hands, evaluate each hand, and determine which is the better hand (3) (25 pts) Simulate the dealer. The dealer's five-card hand is dealt "face down" so the player cannot see it. The program should then evaluate the dealer's hand, and based on the quality of the hand, the dealer should draw one, two, or three more cards to replace the corresponding number of unneeded cards in the original hand. The program should then re- evaluate the dealer's hand (4) (10 pts) Make the program handle the dealer's five-card hand automatically. The player should be allowed to decide which cards of the player's hand to replace. The program should then evaluate both hands and determine who wins. Now use the program to play 10 games against the computer. You should be able to test and modify or refine your Poker game based on these results! You may make any adjustments or customizations to your Poker game that you wish!!! Have

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

The Temple Of Django Database Performance

Authors: Andrew Brookins

1st Edition

1734303700, 978-1734303704

More Books

Students also viewed these Databases questions