C Programming
The following code creates a deck of cards, shuffles it, and deals to players. This program receives command line input [1-13] for number of players and command line input [1-13] for number of cards. Please modify this code to deal cards in a poker game. Command line input must accept [2-10] players and [5] cards only per player. Please validate input. Then, display the sorted hands, and then display the sorted hands - labeling each hand with its poker hand rank. Decks, hands and cards should be clean, clear, aligned and appropriately labeled - do not simply list as a simple column or row of values. Next, display a list of winner(s), or clearly designate the winner(s) with the labeled hands. After the game is concluded, have your program execute a “test function” that passes a sequence of pre-set poker hands, one for each poker-rank hand, in order to validate that each poker-ranking function correctly ranks such hands. YOU MUST USE YOUR POKER HAND-RANKING FUNCTIONS TO RANK EACH PRE-SET POKER HAND. Display each of the pre-set hands and the results of the tests. See sample output below.
Sample Output: from ./MainPoker 5 5 [graphics not required]
The legend is as follows:
Suits: Hearts='♡', Diamonds='♢', Clubs='♧', and Spades='♤'
Ranks: Ace='A', Two='2',..., Ten='T', Jack='J', Queen='Q', and King='K'
Original Ordered Deck:
[ A-♡ ] [ A-♢ ] [ A-♧ ] [ A-♤ ] [ 2-♡ ] [ 2-♢ ] [ 2-♧ ] [ 2-♤ ] [ 3-♡ ] [ 3-♢ ] [ 3-♧ ] [ 3-♤ ] [ 4-♡ ]
[ 4-♢ ] [ 4-♧ ] [ 4-♤ ] [ 5-♡ ] [ 5-♢ ] [ 5-♧ ] [ 5-♤ ] [ 6-♡ ] [ 6-♢ ] [ 6-♧ ] [ 6-♤ ] [ 7-♡ ] [ 7-♢ ]
[ 7-♧ ] [ 7-♤ ] [ 8-♡ ] [ 8-♢ ] [ 8-♧ ] [ 8-♤ ] [ 9-♡ ] [ 9-♢ ] [ 9-♧ ] [ 9-♤ ] [ T-♡ ] [ T-♢ ] [ T-♧ ]
[ T-♤ ] [ J-♡ ] [ J-♢ ] [ J-♧ ] [ J-♤ ] [ Q-♡ ] [ Q-♢ ] [ Q-♧ ] [ Q-♤ ] [ K-♡ ] [ K-♢ ] [ K-♧ ] [ K-♤ ]
Random Shuffled Deck:
[ 4-♢ ] [ 3-♧ ] [ 2-♢ ] [ 6-♤ ] [ Q-♡ ] [ 5-♢ ] [ 7-♡ ] [ T-♤ ] [ 4-♡ ] [ 5-♡ ] [ 8-♡ ] [ 7-♧ ] [ 9-♡ ]
[ A-♡ ] [ Q-♢ ] [ 9-♤ ] [ 8-♧ ] [ 8-♤ ] [ 6-♡ ] [ 5-♧ ] [ 3-♢ ] [ 3-♡ ] [ Q-♧ ] [ T-♧ ] [ T-♢ ] [ 4-♤ ]
[ A-♧ ] [ K-♧ ] [ 7-♤ ] [ 6-♢ ] [ 2-♧ ] [ J-♧ ] [ 5-♤ ] [ 6-♧ ] [ K-♢ ] [ 9-♢ ] [ A-♢ ] [ K-♤ ] [ J-♤ ]
[ 8-♢ ] [ 3-♤ ] [ 2-♤ ] [ 4-♧ ] [ J-♢ ] [ J-♡ ] [ K-♡ ] [ 2-♡ ] [ 7-♢ ] [ T-♡ ] [ Q-♤ ] [ 9-♧ ] [ A-♤ ]
Player Hands: (dealt from top/front of deck)
Player 1] - [ 4-♢ ] [ 3-♧ ] [ 2-♢ ] [ 6-♤ ] [ Q-♡ ]
Player 2] - [ 5-♢ ] [ 7-♡ ] [ T-♤ ] [ 4-♡ ] [ 5-♡ ]
Player 3] - [ 8-♡ ] [ 7-♧ ] [ 9-♡ ] [ A-♡ ] [ Q-♢ ]
Player 4] - [ 9-♤ ] [ 8-♧ ] [ 8-♤ ] [ 6-♡ ] [ 5-♧ ]
Player 5] - [ 3-♢ ] [ 3-♡ ] [ Q-♧ ] [ T-♧ ] [ T-♢ ]
Player Hands: sorted
Player 1] - [ 2-♢ ] [ 3-♧ ] [ 4-♢ ] [ 6-♤ ] [ Q-♡ ]
Player 2] - [ 4-♡ ] [ 5-♡ ] [ 5-♢ ] [ 7-♡ ] [ T-♤ ]
Player 3] - [ A-♡ ] [ 7-♧ ] [ 8-♡ ] [ 9-♡ ] [ Q-♢ ]
Player 4] - [ 5-♧ ] [ 6-♡ ] [ 8-♧ ] [ 8-♤ ] [ 9-♤ ]
Player 5] - [ 3-♢ ] [ 3-♡ ] [ T-♧ ] [ T-♢ ] [ Q-♧ ]
Player Hands: ranked
Player 1] - [ 2-♢ ] [ 3-♧ ] [ 4-♢ ] [ 6-♤ ] [ Q-♡ ] - High Card
Player 2] - [ 4-♡ ] [ 5-♡ ] [ 5-♢ ] [ 7-♡ ] [ T-♤ ] - One Pair
Player 3] - [ A-♡ ] [ 7-♧ ] [ 8-♡ ] [ 9-♡ ] [ Q-♢ ] - High Card
Player 4] - [ 5-♧ ] [ 6-♡ ] [ 8-♧ ] [ 8-♤ ] [ 9-♤ ] - One Pair
Player 5] - [ 3-♢ ] [ 3-♡ ] [ T-♧ ] [ T-♢ ] [ Q-♧ ] - Two Pairs
Player Hands: winner(s)
Player 1] - [ 2-♢ ] [ 3-♧ ] [ 4-♢ ] [ 6-♤ ] [ Q-♡ ] - High Card
Player 2] - [ 4-♡ ] [ 5-♡ ] [ 5-♢ ] [ 7-♡ ] [ T-♤ ] - One Pair
Player 3] - [ A-♡ ] [ 7-♧ ] [ 8-♡ ] [ 9-♡ ] [ Q-♢ ] - High Card
Player 4] - [ 5-♧ ] [ 6-♡ ] [ 8-♧ ] [ 8-♤ ] [ 9-♤ ] - One Pair
Player 5] - [ 3-♢ ] [ 3-♡ ] [ T-♧ ] [ T-♢ ] [ Q-♧ ] - Two Pairs - Winner
Poker Hands: test
Hand: [ 2-♢ ] [ 3-♧ ] [ 4-♢ ] [ 6-♤ ] [ Q-♡ ] - High Card
Hand: [ 4-♡ ] [ 5-♡ ] [ 5-♢ ] [ 7-♡ ] [ T-♤ ] - One Pair
Hand: [ 3-♢ ] [ 3-♡ ] [ T-♧ ] [ T-♢ ] [ Q-♧ ] - Two Pairs
Hand: [ 3-♢ ] [ 3-♡ ] [ 3-♤ ] [ T-♢ ] [ Q-♧ ] - Three of a Kind
Hand: [ A-♤ ] [ 2-♢ ] [ 3-♧ ] [ 4-♢ ] [ 5-♢ ] - Straight
Hand: [ 2-♧ ] [ 3-♧ ] [ 4-♧ ] [ 6-♧ ] [ Q-♧ ] - Flush
Hand: [ 3-♢ ] [ 3-♡ ] [ 3-♤ ] [ T-♢ ] [ T-♧ ] - Full House
Hand: [ 3-♢ ] [ 3-♡ ] [ 3-♤ ] [ 3-♧ ] [ Q-♧ ] - Four of a Kind
Hand: [ T-♢ ] [ J-♢ ] [ Q-♢ ] [ K-♢ ] [ A-♢ ] - Straight Flush
Existing code begins here
#include<stdio.h>
#include <time.h> //time function
#include <stdlib.h> //random number generator functions
#include <string.h>
#define MAX 9
#define MAX_CARDS 52
#define MAX_RANKS 13
#define MAX_SUITS 4
#define COLS 3 //number of columns to display in output
//structure definition
struct card
{
char *rank;
char suit[MAX];
};
typedef struct card Card;
//array of pointers to strings for ranks
char *ranks[MAX_RANKS] = {"Ace", "Two", "Three", "Four", "Five",
"Six", "Seven",
"Eight", "Nine", "Ten", "Jack", "Queen",
"King"};
//two-dimensional array of strings for suits
char suits[MAX_SUITS][MAX] = {"Clubs", "Diamonds", "Hearts",
"Spades"};
void initialize(Card []);
void shuffle(Card []);
void display(const Card[],const int );
void removeTop(Card deck[],int length);
//arguments to store.
int main(int argc, char *argv[])
{
//check for valid number of arguments and validation
of arguments
if(argc != 3)
{
printf("\nInvalid Number of
arugments given\nUSAGE: MainCardHands cards_per_hand
players");
return 1;
}
int cardsPerHand = atoi(argv[1]);
int numOfPlayers = atoi(argv[2]);
printf("\nNumber of Cards per Hand: %d Number of
Players: %d\n\n",cardsPerHand,numOfPlayers);
if(cardsPerHand <= 0 || cardsPerHand>13 ||
numOfPlayers >13 || numOfPlayers <= 0)
{
printf("\nError: Cards Per Hand and
Number of Players must between 1 to 13 both inclusive;");
return 1;
}
if(numOfPlayers * cardsPerHand >52)
{
printf("\nError: Can't dealt %d
cards for each person",cardsPerHand);
return 1;
}
char newline = '\n'; //to repeat while loop
//declare an array of 52 cards
Card deck[MAX_CARDS];// = {"",""};
initialize(deck);
printf("Display an ordered deck of cards:\n");
int length = MAX_CARDS;
//MODIFIED THE display() function to take length
//which helps in displaying remaining deck after
dealing
display(deck,length);
while('\n' == newline)
{
printf("\nshuffling deck ...
\n");
shuffle(deck);
display(deck,length);
printf("Would you like to shuffle
again?\nIf so, press \"Enter\" key. If not, press any other key.
");
newline = getchar();
}
printf("\n\n------------- Dealing %d Cards Per Hand to
%d persons -----------------\n",cardsPerHand,numOfPlayers);
int i,j;
printf("\n");
//till cardsPerHand
for(i =0 ;i<cardsPerHand;i++)
{
printf("\n***********************
Deal : %d *************************\n\n",(i+1));
//deal card to each person.
for(j =
0;j<numOfPlayers;j++)
{
//store top of
the deck, here deck[0] is the top of the deck.
Card top =
deck[0];
//remove the
deck.
removeTop(deck,length);
//print max
three persons per line
printf("Player -
%3d --> %-6s of %-12s",(j+1), top.rank, top.suit);
if(0==((j+1)%COLS))
{
printf("\n");
}
length--;
}
printf("\n");
}
printf("\n\n----------- Deck after Dealing Cards
---------------\n\n");
display(deck,length);
return 0;
}
void removeTop(Card deck[],int length)
{
int i;
for(i =0;i<length-1;i++)
{
deck[i] = deck[i+1];
}
}
/*
initialize the deck of cards to string values
deck: an array of structure cards
*/
void initialize(Card deck[])
{
int i = 0;
for(i=0;i<MAX_CARDS;i++)
{
deck[i].rank =
ranks[i%MAX_RANKS];
strncpy(deck[i].suit,
suits[i/MAX_RANKS], MAX);
}
}
/*
use the pseudo-random number generator to shuffle the cards
deck: an array of structure cards
*/
void shuffle(Card deck[])
{
int swapper = 0; //index of card to be swapped
int i = 0; //counter
Card temp = {"", ""}; //temp holding place for
swap
srand(time(NULL)); //seed the random numbers with
current time
for(i=0;i<MAX_CARDS;i++)
{
//generate a pseudo-random number
from 0 to 51
swapper = rand() % MAX_CARDS;
//swap current card with da
swapper
temp = deck[i];
deck[i] = deck[swapper];
deck[swapper] = temp;
}
}
/*
display the deck of cards
deck: an array of structure cards
*/
void display(const Card deck[],int length)
{
int i = 0;
for(i=0;i<length;i++)
{
printf("%5s of %-12s",
deck[i].rank, deck[i].suit);
//put in a newline every %x
loops
if(0==((i+1)%COLS))
{
printf("\n");
}
}
}
#include<stdio.h>
#include <time.h> //time function
#include <stdlib.h> //random number generator functions
#include <string.h>
#define MAX 9
#define MAX_CARDS 52
#define MAX_RANKS 13
#define MAX_SUITS 4
#define COLS 3 //number of columns to display in output
//structure definition
struct card
{
char *rank;
char suit[MAX];
};
typedef struct card Card;
//array of pointers to strings for ranks
char *ranks[MAX_RANKS] = {"Ace", "Two", "Three", "Four", "Five",
"Six", "Seven",
"Eight", "Nine", "Ten", "Jack", "Queen",
"King"};
//two-dimensional array of strings for suits
char suits[MAX_SUITS][MAX] = {"Clubs", "Diamonds", "Hearts",
"Spades"};
void initialize(Card []);
void shuffle(Card []);
void display(const Card[],const int );
void removeTop(Card deck[],int length);
//arguments to store.
int main(int argc, char *argv[])
{
//check for valid number of arguments and validation
of arguments
if(argc != 3)
{
printf("\nInvalid Number of
arugments given\nUSAGE: MainCardHands cards_per_hand
players");
return 1;
}
int cardsPerHand = atoi(argv[1]);
int numOfPlayers = atoi(argv[2]);
printf("\nNumber of Cards per Hand: %d Number of
Players: %d\n\n",cardsPerHand,numOfPlayers);
if(cardsPerHand <= 0 || cardsPerHand>13 ||
numOfPlayers >13 || numOfPlayers <= 0)
{
printf("\nError: Cards Per Hand and
Number of Players must between 1 to 13 both inclusive;");
return 1;
}
if(numOfPlayers * cardsPerHand >52)
{
printf("\nError: Can't dealt %d
cards for each person",cardsPerHand);
return 1;
}
char newline = '\n'; //to repeat while loop
//declare an array of 52 cards
Card deck[MAX_CARDS];// = {"",""};
initialize(deck);
printf("Display an ordered deck of cards:\n");
int length = MAX_CARDS;
//MODIFIED THE display() function to take length
//which helps in displaying remaining deck after
dealing
display(deck,length);
while('\n' == newline)
{
printf("\nshuffling deck ...
\n");
shuffle(deck);
display(deck,length);
printf("Would you like to shuffle
again?\nIf so, press \"Enter\" key. If not, press any other key.
");
newline = getchar();
}
printf("\n\n------------- Dealing %d Cards Per Hand to
%d persons -----------------\n",cardsPerHand,numOfPlayers);
int i,j;
printf("\n");
//till cardsPerHand
for(i =0 ;i<cardsPerHand;i++)
{
printf("\n***********************
Deal : %d *************************\n\n",(i+1));
//deal card to each person.
for(j =
0;j<numOfPlayers;j++)
{
//store top of
the deck, here deck[0] is the top of the deck.
Card top =
deck[0];
//remove the
deck.
removeTop(deck,length);
//print max
three persons per line
printf("Player -
%3d --> %-6s of %-12s",(j+1), top.rank, top.suit);
if(0==((j+1)%COLS))
{
printf("\n");
}
length--;
}
printf("\n");
}
printf("\n\n----------- Deck after Dealing Cards
---------------\n\n");
display(deck,length);
return 0;
}
void removeTop(Card deck[],int length)
{
int i;
for(i =0;i<length-1;i++)
{
deck[i] = deck[i+1];
}
}
/*
initialize the deck of cards to string values
deck: an array of structure cards
*/
void initialize(Card deck[])
{
int i = 0;
for(i=0;i<MAX_CARDS;i++)
{
deck[i].rank =
ranks[i%MAX_RANKS];
strncpy(deck[i].suit,
suits[i/MAX_RANKS], MAX);
}
}
/*
use the pseudo-random number generator to shuffle the cards
deck: an array of structure cards
*/
void shuffle(Card deck[])
{
int swapper = 0; //index of card to be swapped
int i = 0; //counter
Card temp = {"", ""}; //temp holding place for
swap
srand(time(NULL)); //seed the random numbers with
current time
for(i=0;i<MAX_CARDS;i++)
{
//generate a pseudo-random number
from 0 to 51
swapper = rand() % MAX_CARDS;
//swap current card with da
swapper
temp = deck[i];
deck[i] = deck[swapper];
deck[swapper] = temp;
}
}
/*
display the deck of cards
deck: an array of structure cards
*/
void display(const Card deck[],int length)
{
int i = 0;
for(i=0;i<length;i++)
{
printf("%5s of %-12s",
deck[i].rank, deck[i].suit);
//put in a newline every %x
loops
if(0==((i+1)%COLS))
{
printf("\n");
}
}
}
C Programming The following code creates a deck of cards, shuffles it, and deals to players....
A standard poker deck of 52 cards has four suits, (symbols C, H, S, and D) and thirteen ranks (symbols A, 2, 3, 4, 5, 6, 7, 8, 9, T, J, Q, and K). Every card in the deck has both a value and a suit.1 A poker hand is any set of 5 cards from the standard poker deck. There are some special hands in poker, and these have ranks (i.e. some are better, some are worse). From best...
1. Probabilities of Poker Hands These questions refer to a standard deck of 52 cards having 4 suits , A, 0,♡ and 13 ranks 2,3,4,5,6,7,8,9,10,J,Q,K, A. You are dealt a 5-card hand from such a deck (so there are (53) possible hands, each one is equally likely). 1. A flush is a hand consisting of 5 cards that all have the same suit. For example {24,54, 104, JA, A$} is a flush. What is the probability that your hand is...
Can someone please answer this by Friday? A poker deck consists of cards ranked 2; 3; 4; 5; 6; 7; 8; 9; 10; J; Q;K;A (13 different ranks), each in four suits, for a total of 52 distinct cards. (a) What is the probability that a five-card poker hand drawn from a poker deck consists only of cards ranked 8; 9; 10; J; Q;K;A? (b) Find a probability of Three of a kind. This is, three cards of the same...
Create A Header file and A CPP File for this we want to simulate drawing cards from a deck,with or without replacement. With replacement means that the card is placed back in the deck after having been drawn. You will want to design a class that represents a deck of card (52 cards. 13 cards: Ace, 2, 3, 4, 5, 6, 7, 8, 9, 10, Jack, Queen, King) The class is to be called “aDeckOfCards”. And it should generate a...
Deck of Cards Program I need help printing a flush, which is showing the top 5 cards of the same suite. Below is the code I already have that answers other objectives, such as dealing the cards, and finding pairs. Towards the end I have attempted printing a flush, but I cannot figure it out. public class Shuffler { /** * The number of consecutive shuffle steps to be performed in each call * to each sorting...
Consider a regular deck of cards with 52 cards in total. (1) How many ways can we have a poker hand of 5 cards? (2) Four of a kind is a poker hand that contains all four cards of one rank and any other (unmatched) card. For example, 94 949 9♡ JA is a "four of a kind”. How many ways can we have "four of a kind" ? (3) In a poker hand of 5 cards, what's the probability...
8. A dealer shuffles a deck of cards and deals you 5 cards off of the top of the deck (A deck consists of 52 cards, divided into 4 suits of 13 cards each, so each of the 13 values' appears 4 times). What is the probability that your hand consists of 2 Queens and 3 Kings? Write out the full calculation, and then compute your final answer as a decimal.
Need help with shuffle function and give 8 cards to user and computer from shuffle deck? #include <stdio.h> #include <stdbool.h> #include <string.h> #include <stdlib.h> #include <math.h> #include <time.h> typedef struct card_s{ char suit; int face; struct card_s *listp; } card; void card_create(card* thisNode, char cardSuit, int cardFace, card* nextLoc) { thisNode->suit = cardSuit; thisNode->face = cardFace; thisNode->listp = nextLoc; return; } void card_insertAfter(card* thisNode, card* newNode) { card* tmpNext = NULL; ...
7.12 (Card Shuffling and Dealing) Modify the program in Fig. 7.24 so that the card-dealing function deals a five-card poker hand. Then write the following additional functions: a) Determine whether the hand contains a pair. b) Determinewhetherthehandcontainstwopairs. c) Determine whether the hand contains three of a kind (e.g., three jacks). d) Determinewhetherthehandcontainsfourofakind(e.g.,fouraces). e) Determine whether the hand contains a flush (i.e., all five cards of the same suit). f) Determine whether the hand contains a straight (i.e., five cards of...
I need a basic program in C to modify my program with
the following instructions:
Create a program in C that will:
Add an option 4 to your menu for "Play Bingo"
-read in a bingo call (e,g, B6, I17, G57, G65)
-checks to see if the bingo call read in is valid (i.e., G65 is
not valid)
-marks all the boards that have the bingo call
-checks to see if there is a winner, for our purposes winning
means...