Question

Your task is to write the initDeck() function, which will be called at the start of...

Your task is to write the initDeck() function, which will be called at the start of the program to initialize all of the cards data structures.

The data structure definitions and a basic main program will be made available for you to use to develop your code.  

The initDeck() function:

/* Function: initDeck()

* Purpose: iterate through entire deck and set to default values

* Accepts: array of Cards (the deck)

* Returns: void */

void initDeck(struct Card deck[]) { }

Hints and Suggestions:

  • Use a couple of loops to iterate through the array of Cards (the deck). One loop could iterate through the suits, and another loop could iterate through the faces for each suit.  
  • Create an instance of the CardFace enumeration and use that as your counting variable for the face loop. Look up enumerations online and/or in your C Primer Plus textbook.
  • You can get the string name of the card face by using your CardFace enum variable as the index for the cardName string array. For example, strcpy(deck[x].name, cardName[king]); will copy the string "king" into the name member of the xth card in the deck array.
  • The card deck array will be passed to your initDeck() function. Because of the way arrays are passed between functions in C (as an address), any changes you make to the array elements (the cards) in your function will be reflected in the original object. Therefore, this function doesn't need to return anything

please use C for that

0 0
Add a comment Improve this question Transcribed image text
Answer #1

DeckOfCard.c

#include<stdio.h>
#define SIZE 52
enum face {ACE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, TEN, JACK, QUEEN, KING};
enum suit {SPADE, HEART, CLUB, DIAMOND};
struct Card {
        enum face f;
        enum suit s;
};
char* face_name[] = { "ACE", "TWO", "THREE", "FOUR", "FIVE", "SIX", "SEVEN", "EIGHT", "NINE", "TEN", "JACK", "QUEEN", "KING" };
char* suit_name[] = { "SPADE", "HEART", "CLUB", "DIAMOND" };                    //Array of strings
                                                                                                
void initDeck(struct Card deck[]);
void displayDeck(struct Card deck[]);

int main() {
        struct Card deck[SIZE];
        int i, j, k=0;
        
        initDeck(deck);                                         //Initialize deck
        displayDeck(deck);                                      //Display deck
        getch();
        return 0;
}
void initDeck(struct Card deck[]) {
        int i, j, k = 0;
        for (i = 0;i < 4;i++) {                      //Loop for suits
                for (j = 0;j < 13;j++) {     //Loop for faces
                        deck[k].f = j;                  //Store face of the card
                        deck[k].s = i;                  //Store suit of the card
                        k++;                                    //Move to next card
                }
        }               //End for
}
void displayDeck(struct Card deck[]) {
        int i;
        for (i = 0;i < 52; i++) {
                printf("%s-%s\n", suit_name[deck[i].s], face_name[deck[i].f]);
        }
}

Add a comment
Know the answer?
Add Answer to:
Your task is to write the initDeck() function, which will be called at the start of...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
  • Using C++: 1. Array and Struct in Card applications: In card game design, card suit and...

    Using C++: 1. Array and Struct in Card applications: In card game design, card suit and face values can be defined with enumeration values. Declare suit values - – hearts, clubs, diamonds, spades using enum, declare face values of 2 – 10, Jack, Queen, King, Ace using enum Declare a structure called Card, and it includes two data members, whose data types are the above two defined enumerations suit and face typedef an array called Deck, and it includes all...

  • (Card Shuffling and Dealing) Modify the program below so that the card-dealing function deals a five-card...

    (Card Shuffling and Dealing) Modify the program below so that the card-dealing function deals a five-card poker hand. Then write the following additional functions: a) Determine whether the hand contains two pairs b) Determine whether the hand contains a full house (i.e., three of a kind with pair). c) Determinewhetherthehandcontainsastraight flush (i.e.,fivecardsofconsecutivefacevalues). d) Determine whether the hand contains a flush (i.e., five of the same suit) #include <stdio.h> #include <stdlib.h> #include <time.h> #define SUITS 4 #define FACES 13 #define CARDS...

  • Given these three classes: Card, DeckOfCards, and DeckOfCardsTest. Extend the DeckofCards class to implement a BlackJack...

    Given these three classes: Card, DeckOfCards, and DeckOfCardsTest. Extend the DeckofCards class to implement a BlackJack class, which implements a BlackJack game. Please do not use any java applet on the coding. Hint: Use a test class to test above classes. Pulic class Card {    private final String face; // face of card ("Ace", "Deuce", ...)    private final String suit; // suit of card ("Hearts", "Diamonds", ...)    // two-argument constructor initializes card's face and suit    public...

  • NEED HELP TO CREATE A BLACKJACK GAME WITH THE UML DIAGRAM AND PROBLEM SOLVING TO GET...

    NEED HELP TO CREATE A BLACKJACK GAME WITH THE UML DIAGRAM AND PROBLEM SOLVING TO GET CODE TO RUN!! THANKS Extend the DeckofCards and the Card class in the book to implement a card game application such as BlackJack, Texas poker or others. Your game should support multiple players (up to 5 for BlackJack). You must build your game based on the Cards and DeckofCards class from the book. You need to implement the logic of the game. You can...

  • Please write in C Programming Your task is to "deal" a card from the card deck....

    Please write in C Programming Your task is to "deal" a card from the card deck. standard 52 deck /* Function: dealCard() Purpose: Pick a card at random from the deck Accepts: struct Card * -- pointer to array of cards (deck) Returns: struct Card * -- pointer to the dealt card*/ struct Card *dealCard(struct Card *deck) { // Iterate through the entire deck to make sure there is at least one card that has NOT been dealt // If...

  • 7.12 (Card Shuffling and Dealing) Modify the program in Fig. 7.24 so that the card-dealing function deals a five-card...

    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...

  • C++ Your solution should for this assignment should consist of five (5) files: Card.h (class specification...

    C++ Your solution should for this assignment should consist of five (5) files: Card.h (class specification file) Card.cpp (class implementation file) DeckOfCards.h (class specification file) DeckOfCards.cpp (class implementation file) 200_assign6.cpp (application program) NU eelLS Seven UT Diamonds Nine of Hearts Six of Diamonds For your sixth programming assignment you will be writing a program to shuffle and deal a deck of cards. The program should consist of class Card, class DeckOfCards and an application program. Class Card should provide: a....

  • //main.cpp #include <iostream> #include <iomanip> #include "deck-of-cards.hpp" void RunAllTests() { int count; std::cin >> count; DeckOfCards...

    //main.cpp #include <iostream> #include <iomanip> #include "deck-of-cards.hpp" void RunAllTests() { int count; std::cin >> count; DeckOfCards myDeckOfCards; for (int i = 0; myDeckOfCards.moreCards() && i < count; ++i) { std::cout << std::left << std::setw(19) << myDeckOfCards.dealCard().toString(); if (i % 4 == 3) std::cout << std::endl; } } int main() { RunAllTests(); return 0; } //card.hpp #ifndef CARD_HPP_ #define CARD_HPP_ #include <string> class Card { public: static const int totalFaces = 13; static const int totalSuits = 4; Card(int cardFace, int...

  • Write in Java! Do NOT write two different programs for Deck and Card, it should be...

    Write in Java! Do NOT write two different programs for Deck and Card, it should be only one program not 2 separate ones!!!!!! The Learning Goal for this exercise is to use and understand and know the difference between arrays and array lists. !!!!Use at least one array defined in your code and two array lists defined by the operation of your code!!!! The array should be 52 elements and contain a representation of a standard deck of cards, in...

  • In java---- The DeckTester.java file, provides a basic set of Deck tests. Add additional code at...

    In java---- The DeckTester.java file, provides a basic set of Deck tests. Add additional code at the bottom of the main method to create a standard deck of 52 cards and test the shuffle method ONLY in the Deck class. After testing the shuffle method, use the Deck toString method to “see” the cards after every shuffle. Deck: import java.util.List; import java.util.ArrayList; /** * The Deck class represents a shuffled deck of cards. * It provides several operations including *...

ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT