Why won't this line compile? Main.cpp #include #include #include #include #include #include "card.h" #include "deck.h" #include "hand.h" using namespace std; int main() { string repeat = "Y"; Deck myDeck; Hand myHand; string exchangeCards; while (repeat == "Y" || repeat == "y") { cout << endl; myHand.newHand(myDeck); myHand.print(); cout << endl; cout << "Would you like to exchange any cards? [Y / N]: "; getline(cin, exchangeCards); while (exchangeCards != "Y" && exchangeCards != "y" && exchangeCards != "X" && exchangeCards != "n") { cout << "Please enter Y or N only: "; getline(cin, exchangeCards); } if(exchangeCards == "Y" || exchangeCards == "y") { myHand.exchangeCards(myDeck); } cout << endl; myHand.print(); cout << endl; myDeck.reset(); // Resets the deck for a new game cout << "Play again? [Y / N]: "; getline(cin, repeat); while (repeat != "Y" && repeat != "y" && repeat != "N" && repeat != "n") { cout << "Please enter Y or N only: "; getline(cin, repeat); } } return 0; } Deck.h #ifndef DECK_H #define DECK_H #include #include // srand(), rand() #include // time() #include "card.h" // Include card header file here using namespace std; class Deck { public: Deck(); void resetDeck(); void printUndealtDeck(); void printDealtDeck(); const int getSizeUndealtDeck(); const int getSizeDealtDeck(); Card dealCard(); // Is the dealCard() here an accessor or mutator function??? private: vector m_undealtDeck; // Undealt cards vector m_dealtDeck; // Dealt cards }; #endif hand.h: #ifndef HAND_H #define HAND_H #include #include "card.h" // Include card header file here #include "deck.h" // Include deck header file here using namespace std; const int NUM_CARDS_ON_HAND = 5; class Hand { public: void newCard(Deck& deck, int location); void newHand(Deck& deck); void exchangeCards(Deck& deck); void print(); private: Card m_hand[NUM_CARDS_ON_HAND]; // A hand consists of 5 cards }; #endif card.h: #ifndef CARD_H #define CARD_H #include #include using namespace std; const string pips[] = {"Ace", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King"}; const string suits[] = {"Hearts", "Spades", "Clubs", "Diamonds"}; class Card {public: int get(); void set(int value); string getPip(); string getSuit(); void print(); private: int m_cardValue; }; #endif Deck.cpp: #include "deck.h" Deck::Deck() //--- default class constructor { srand(time(0)); for (int i=0; i < 52; i++) {Card cardInstance; cardInstance.set(i) m_undealtDeck.push_back(cardInstance); // should it be .get here()??? } } void Deck::reset() { while (getSizeDealtDeck() != 0) { int last_index = getSizeDealtDeck()-1; m_undealtDeck.push_back(m_dealtDeck[last_index]); m_dealtDeck.pop_back(); } } Card Deck::dealCard() // --- Deal a single card { int random_index = rand() % getSizeUndealtDeck(); // gets random index in undealt deck Card random_card; // creates a card instance random_card.set(m_undealtDeck[random_index].get()); // set the random card to the correct value m_dealtDeck.push_back(random_card); // pushes the random card to the dealt deck m_undealtDeck[random_index] = m_undealtDeck.back(); // puts the back index value to the random index m_undealtDeck.pop_back(); // gets rid of the back value return random_card; const int Deck::getSizeUndealtDeck() // --- return size of undealt deck { return m_undealtDeck.size(); } const int Deck::getSizeDealtDeck() // --- return size of dealt deck { return m_dealtDeck.size(); } void Deck::printUndealtDeck() // loops through the undealt deck and prints it { for (int i=0; i < getSizeUndealtDeck(); i++) { m_undealtDeck[i].print(); cout << endl; } } void Deck::printDealtDeck() // loops through the dealt deck { for (int i=0; i < getSizeDealtDeck(); i++) { m_dealtDeck[i].print(); cout << endl; } } Hand.cpp #include "pokerHand.h" void Hand::newCard(Deck& deck, int location) { Card new_card = deck.dealCard(); m_hand[location] = new_card; } void Hand::newHand(Deck& deck) { for (int i=0; i < NUM_CARDS_ON_HAND; i++) { Hand::newCard(deck, i); } } void Hand::exchangeCards(Deck& deck) { int num_of_exchanges; cout << "How many cards would you like to exchange (1-5): "; // gets number of cards to be exchanged cin >> num_of_exchanges; while (num_of_exchanges > 5 || num_of_exchanges < 1) // validates input { cout << "Please enter a number (1-5): "; cin >> num_of_exchanges; } for (int i=0; i < num_of_exchanges; i++) // looping through number of exchanges { int position = i; // positioned to be changed is i if (num_of_exchanges != NUM_CARDS_ON_HAND) // if number of exchanges is less than total hand count { cout << "Enter a position in hand of card to exchange: "; cin >> position; // gets position to be replaced while (position > 5 || position < 1) // validates input { cout << "Please enter a number (1-5): "; cin >> position; } position--; } Hand::newCard(deck, position); // replaces card at position } } void Hand::print() {for (int i=0; i < NUM_CARDS_ON_HAND; i++) {cout << "Card " << i+1 << " is the "; m_hand[i].print(); cout << endl; }}  Card.cpp:

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

Why won't this line compile?

Main.cpp

#include <iostream>
#include <string>
#include <fstream>
#include <iomanip>
#include <sstream>
#include "card.h"
#include "deck.h"
#include "hand.h"
using namespace std;
int main()
{
string repeat = "Y";
Deck myDeck;
Hand myHand;
string exchangeCards;
while (repeat == "Y" || repeat == "y")
{
cout << endl;
myHand.newHand(myDeck);
myHand.print();
cout << endl;
cout << "Would you like to exchange any cards? [Y / N]: ";
getline(cin, exchangeCards);
while (exchangeCards != "Y" && exchangeCards != "y" && exchangeCards != "X" && exchangeCards != "n")
{
cout << "Please enter Y or N only: ";
getline(cin, exchangeCards);
}
if(exchangeCards == "Y" || exchangeCards == "y")
{
myHand.exchangeCards(myDeck);
}
cout << endl;
myHand.print();
cout << endl;
myDeck.reset(); // Resets the deck for a new game
cout << "Play again? [Y / N]: ";
getline(cin, repeat);
while (repeat != "Y" && repeat != "y" && repeat != "N" && repeat != "n")
{
cout << "Please enter Y or N only: ";
getline(cin, repeat);
}
}
return 0;
}

Deck.h

#ifndef DECK_H
#define DECK_H
#include <vector>
#include <cstdlib> // srand(), rand()
#include <ctime> // time()
#include "card.h" // Include card header file here
using namespace std;
class Deck
{
public:
Deck();
void resetDeck();
void printUndealtDeck();
void printDealtDeck();
const int getSizeUndealtDeck();
const int getSizeDealtDeck();
Card dealCard(); // Is the dealCard() here an accessor or mutator function???
private:
vector<Card> m_undealtDeck; // Undealt cards
vector<Card> m_dealtDeck; // Dealt cards
};
#endif

hand.h:

#ifndef HAND_H
#define HAND_H
#include <iostream>
#include "card.h" // Include card header file here
#include "deck.h" // Include deck header file here
using namespace std;
const int NUM_CARDS_ON_HAND = 5;
class Hand
{
public:
void newCard(Deck& deck, int location);
void newHand(Deck& deck);
void exchangeCards(Deck& deck);
void print();
private:
Card m_hand[NUM_CARDS_ON_HAND]; // A hand consists of 5 cards
};
#endif

card.h:

#ifndef CARD_H
#define CARD_H
#include <iostream>
#include <string>
using namespace std;
const string pips[] = {"Ace", "Two", "Three", "Four", "Five",
"Six", "Seven", "Eight", "Nine", "Ten",
"Jack", "Queen", "King"};
const string suits[] = {"Hearts", "Spades", "Clubs", "Diamonds"};
class Card
{public:
int get();
void set(int value);
string getPip();
string getSuit();
void print();
private:
int m_cardValue;
};
#endif

Deck.cpp:

#include "deck.h"
Deck::Deck() //--- default class constructor
{ srand(time(0));
for (int i=0; i < 52; i++)
{Card cardInstance;
cardInstance.set(i)
m_undealtDeck.push_back(cardInstance); // should it be .get here()???
}
}
void Deck::reset()
{ while (getSizeDealtDeck() != 0)
{
int last_index = getSizeDealtDeck()-1;
m_undealtDeck.push_back(m_dealtDeck[last_index]);
m_dealtDeck.pop_back();
}
}
Card Deck::dealCard() // --- Deal a single card
{ int random_index = rand() % getSizeUndealtDeck(); // gets random index in undealt deck
Card random_card; // creates a card instance
random_card.set(m_undealtDeck[random_index].get()); // set the random card to the correct value
m_dealtDeck.push_back(random_card); // pushes the random card to the dealt deck
m_undealtDeck[random_index] = m_undealtDeck.back(); // puts the back index value to the random index
m_undealtDeck.pop_back(); // gets rid of the back value
return random_card;
const int Deck::getSizeUndealtDeck() // --- return size of undealt deck
{ return m_undealtDeck.size();
}
const int Deck::getSizeDealtDeck() // --- return size of dealt deck
{ return m_dealtDeck.size();
}
void Deck::printUndealtDeck() // loops through the undealt deck and prints it
{
for (int i=0; i < getSizeUndealtDeck(); i++)
{
m_undealtDeck[i].print();
cout << endl;
}
}
void Deck::printDealtDeck() // loops through the dealt deck
{
for (int i=0; i < getSizeDealtDeck(); i++)
{
m_dealtDeck[i].print();
cout << endl;
}
}

Hand.cpp

#include "pokerHand.h"
void Hand::newCard(Deck& deck, int location)
{
Card new_card = deck.dealCard();
m_hand[location] = new_card;
}
void Hand::newHand(Deck& deck)
{
for (int i=0; i < NUM_CARDS_ON_HAND; i++)
{
Hand::newCard(deck, i);
}
}
void Hand::exchangeCards(Deck& deck)
{
int num_of_exchanges;
cout << "How many cards would you like to exchange (1-5): "; // gets number of cards to be exchanged
cin >> num_of_exchanges;
while (num_of_exchanges > 5 || num_of_exchanges < 1) // validates input
{
cout << "Please enter a number (1-5): ";
cin >> num_of_exchanges;
}
for (int i=0; i < num_of_exchanges; i++) // looping through number of exchanges
{
int position = i; // positioned to be changed is i
if (num_of_exchanges != NUM_CARDS_ON_HAND) // if number of exchanges is less than total hand count
{
cout << "Enter a position in hand of card to exchange: ";
cin >> position; // gets position to be replaced
while (position > 5 || position < 1) // validates input
{
cout << "Please enter a number (1-5): ";
cin >> position;
}
position--;
}
Hand::newCard(deck, position); // replaces card at position
}
}
void Hand::print()
{for (int i=0; i < NUM_CARDS_ON_HAND; i++)
{cout << "Card " << i+1 << " is the ";
m_hand[i].print();
cout << endl;
}} 

Card.cpp:

6:54
* 0 ©
main.cpp - Code:Blocks 20.03
Edit View Seagch Project Build Debug Fortran woSmith Jools Tools+ Plugins DoxyBlocks Settings Help
lobal>
v main(): int
****
S
t here × "deck.cpp x "hand.cpp x *main.cpp x "deck.h × "hand.h x "card.h x "card.cpp x
32
while (exchangeCards !- "y" &6 exchangeCards !- "y" Ss exchangeCards !- "X" 66 exchangeCards !- "n")
33
cout << "Please enter Y or N only: ":
getline (cin, exchangeCards) ;
34
35
36
37
if(exchangeCards == "Y" || exchangeCarda == "y")
38
39
myHand.exchangeCards (myDeck) :
40
41
cout << endl;
42
myHand.print () ;
cout < endl;
myDeck.reset ():
cout « "Play again? [Y / N]: ";
getline (cin, repeat):
while (repeat !- "Y" &G repeat !- "y" 4G repeat !- "N" GG repeat !- "n")
// Resets the deck for a new game
45
cout << "Please enter Y or N only: ";
getline (cin, repeat);
49
50
& others
Cccc X O Build log X
Build messages x CppCheck/Vera++ X CppCheck/Vera+• messages X Cscope X
O Debugger X
2 DoxyBlocks X Fortran info X
t Closed files list X
Thr
de
Line
Message
=== Build file: "no target" in "no project" (compiler: unknown) ===
In funetion 'int main()':
AUsers\Mica...
Users\Mica...
44
error: 'resetDeck' was not declared in this scope
- Build failed: 1 error (s), O varning (s) (0 minute (s), 2 second(s)) ---
sers\Micai\Documents\Assignment2\main.cpp
C/C++
Windows (CR-LF) WINDOWS-125s2 Line 45, Col 25, Pos 1199
Modified Read/Write default
Insert
Transcribed Image Text:6:54 * 0 © main.cpp - Code:Blocks 20.03 Edit View Seagch Project Build Debug Fortran woSmith Jools Tools+ Plugins DoxyBlocks Settings Help lobal> v main(): int **** S t here × "deck.cpp x "hand.cpp x *main.cpp x "deck.h × "hand.h x "card.h x "card.cpp x 32 while (exchangeCards !- "y" &6 exchangeCards !- "y" Ss exchangeCards !- "X" 66 exchangeCards !- "n") 33 cout << "Please enter Y or N only: ": getline (cin, exchangeCards) ; 34 35 36 37 if(exchangeCards == "Y" || exchangeCarda == "y") 38 39 myHand.exchangeCards (myDeck) : 40 41 cout << endl; 42 myHand.print () ; cout < endl; myDeck.reset (): cout « "Play again? [Y / N]: "; getline (cin, repeat): while (repeat !- "Y" &G repeat !- "y" 4G repeat !- "N" GG repeat !- "n") // Resets the deck for a new game 45 cout << "Please enter Y or N only: "; getline (cin, repeat); 49 50 & others Cccc X O Build log X Build messages x CppCheck/Vera++ X CppCheck/Vera+• messages X Cscope X O Debugger X 2 DoxyBlocks X Fortran info X t Closed files list X Thr de Line Message === Build file: "no target" in "no project" (compiler: unknown) === In funetion 'int main()': AUsers\Mica... Users\Mica... 44 error: 'resetDeck' was not declared in this scope - Build failed: 1 error (s), O varning (s) (0 minute (s), 2 second(s)) --- sers\Micai\Documents\Assignment2\main.cpp C/C++ Windows (CR-LF) WINDOWS-125s2 Line 45, Col 25, Pos 1199 Modified Read/Write default Insert
6:52
* 0 ©
10
rd.cpp - Code:Blocks 20.03
dit View Seagch Project Build Debug Fortran wSmith Jools Tgols+ Pļugins DoxyBlocks Settings Help
get): void
** *<
S C
ere x "deck.cpp x "hand.cpp x "main.cpp X
"deck.h x "hand.h x "card.h x "card.cpp x
#include "card.h"
void Card::get ()
return m cardvalue;
void Card: :set (int newCardval)
_cardvalue - newCardVal;
string Card::getPip ()
return pips (m_cardValue 13];
string Card: :getSuit ()
return suitS (m_cardvalue / 131;
17
18
void Card: :print ()
int suit_number - m_cardValue / 13;
int pip_number = m_cardValue 13;
cout << pips (pip_number] « " of " « suita(suit_number);
21
22
23
24
Mica\Documents\Assignment2\card.cpp
C/C++
Windows (CR-LF) WINDOWS-1252 Line 5, Col 2, Pos 66
Modified Read/Write default
Insert
Transcribed Image Text:6:52 * 0 © 10 rd.cpp - Code:Blocks 20.03 dit View Seagch Project Build Debug Fortran wSmith Jools Tgols+ Pļugins DoxyBlocks Settings Help get): void ** *< S C ere x "deck.cpp x "hand.cpp x "main.cpp X "deck.h x "hand.h x "card.h x "card.cpp x #include "card.h" void Card::get () return m cardvalue; void Card: :set (int newCardval) _cardvalue - newCardVal; string Card::getPip () return pips (m_cardValue 13]; string Card: :getSuit () return suitS (m_cardvalue / 131; 17 18 void Card: :print () int suit_number - m_cardValue / 13; int pip_number = m_cardValue 13; cout << pips (pip_number] « " of " « suita(suit_number); 21 22 23 24 Mica\Documents\Assignment2\card.cpp C/C++ Windows (CR-LF) WINDOWS-1252 Line 5, Col 2, Pos 66 Modified Read/Write default Insert
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps

Blurred answer
Knowledge Booster
File Input and Output Operations
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education