Question: I need to solve this problem by C++ Problem Description Given the two files, BagInterface.h and the driver file, please implement the card guessing game.
I need to solve this problem by C++
Problem Description Given the two files, BagInterface.h and the driver file, please implement the card guessing game.
Please use arrays and, function and class templates
Sample Output
What is your guess?(1 for Ace to 13 for King):3
Sorry, card was not in the bag.
What is your guess?(1 for Ace to 13 for King):5
Sorry, card was not in the bag.
What is your guess?(1 for Ace to 13 for King):2
You get the card! What is your guess?(1 for Ace to 13 for King):1
You get the card! What is your guess?(1 for Ace to 13 for King):10
You get the card! What is your guess?(1 for Ace to 13 for King):12
You get the card! What is your guess?(1 for Ace to 13 for King):8
You get the card! What is your guess?(1 for Ace to 13 for King):8
Sorry, card was not in the bag. What is your guess?(1 for Ace to 13 for King):4
You get the card! No more cards in the bag.
Game over! ======= /**
@file BagInterface.h */
#ifndef _BAG_INTERFACE
#define _BAG_INTERFACE
#include using namespace
std; template
class BagInterface
{
public:
/** Gets the current number of entries in this bag.
@return The integer number of entries currently in the bag. */
virtual int getCurrentSize() const = 0;
/** Sees whether this bag is empty.
@return True if the bag is empty, or false if not.
*/ virtual bool isEmpty() const = 0;
/** Adds a new entry to this bag.
@post If successful,
newEntry is stored in the bag and the count of items in the bag has increased by 1.
@param newEntry The object to be added as a new entry.
@return True if addition was successful, or false if not. */
virtual bool add(const ItemType& newEntry) = 0;
/** Removes one occurrence of a given entry from this bag, if possible.
@post If successful, anEntry has been removed from the bag and the count of items in the bag has decreased by 1. @param anEntry The entry to be removed. @return True if removal was successful, or false if not. */ virtual bool remove(const ItemType& anEntry) = 0;
/** Removes all entries from this bag. @post Bag contains no items, and the count of items is 0. */
virtual void clear() = 0;
/** Counts the number of times a given entry appears in bag.
@param anEntry The entry to be counted.
@return The number of times anEntry appears in the bag. */
virtual int getFrequencyOf(const ItemType& anEntry) const = 0;
/** Tests whether this bag contains a given entry. @param anEntry The entry to locate. @return True if bag contains anEntry, or false otherwise. */
virtual bool contains(const ItemType& anEntry) const = 0;
/** Empties and then f ills a given vector with all entries that are in this bag.
@return A vector containing all the entries in the bag. */
virtual vector toVector() const = 0; };
// end BagInterface #endif #include //
For cout and cin
#include // For string objects
#include "Bag.cpp"
// For ADT bag using namespace std;
int main() { string clubs[] = { "Joker", "Ace", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King" };
// Create our bag to hold cards.
Bag grabBag; // Place six cards in the bag.
grabBag.add(clubs[1]);
grabBag.add(clubs[2]);
grabBag.add(clubs[4]);
grabBag.add(clubs[8]);
grabBag.add(clubs[10]);
grabBag.add(clubs[12]);
// Get friends guess and check it.
int guess = 0;
while (!grabBag.isEmpty())
{ cout << "What is your guess?" << "(1 for Ace to 13 for King):"; cin >> guess; // Is card in the bag? if (grabBag.contains(clubs[guess]))
{ // Good guess remove card from the bag. cout << "You get the card! "; grabBag.remove(clubs[guess]); }
else { cout << "Sorry, card was not in the bag. "; } // end if } //
end while
cout << "No more cards in the bag. Game over! "; cin.get(); return 0; }
// end main /*
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
