Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

In C++ Need help Thank you! Class Game: Update class to 1. Add member variables

ID: 3908810 • Letter: I

Question

In C++

Need help Thank you!

Class Game:

Update class to

1. Add member variables

Modify member variable named trump to be of data type class Card instead of enumeration Suit

Add member variable of data type class ArrayList specifically to only allow for instances of class Player that represents the game table layout (i.e. players of the game Euchre are set up so that team members sit across from each other, therefore the deal would be similar to TeamOne.PlayerOne, TeamTwo.PlayerOne, TeamOne.PlayerTwo, TeamTwo.PlayerTwo depending upon who the dealer is)

Add member variable of data type int to represent an integer index of the current dealer based on the table layout

Add member variable of data type int to represent an integer index of the lead player based on the table layout

2. Update custom constructor to call methods AFTER existing method calls

setTable

dealHand

displayHands

3. Write method setTable to do the following:

Return type void

Empty parameter list

Instantiate the member variable that represents the player table that is of data type ArrayList

Instantiate two instances of class Team set equal to each instance of class Team stored in the member variable of data type class ArrayList specifically of data type class Team

Instantiate four instances of class Player set equal to each instance of class Player stored in the member variable in class Team of data type class ArrayList of data type class Player

(i.e. players of the game Euchre are set up so that team members sit across from each other, therefore the deal would be similar to TeamOne.PlayerOne, TeamTwo.PlayerTwo, TeamOne.PlayerTwo, TeamTwo.PlayerTwo depending upon who the dealer is)

i.There should be an instance of class Player that represents TeamOne, PlayerOne

ii.There should be an instance of class Player that represents TeamOne, PlayerTwo

iii.There should be an instance of class Player that represents TeamTwo, PlayerOne

iv.There should be an instance of class Player that represents TeamTwo, PlayerTwo

Explicitly add each player to the member variable that represents the game table, from above in an alternating pattern so that a player from TeamOne is added, followed by a player from TeamTwo, followed by a player from TeamOne, followed by a player from TeamTwo; this requires using the method signature of class ArrayList.add that requires two arguments; the first argument is the position in the ArrayList (i.e. 0, 1, 2, 3), the second argument is the object of data type class Player (e.g. table.add(0, teamOnePlayerOne)

4. Write method setDealerAndLead to do the following

Instantiate an instance of class Random

Set the member variable of primitive data type int that will represent a random integer of four players to determine who the initial dealer of the game is set equal to the method call .nextInt passing as an argument the value of the number of players in the game (i.e. four)

Set the member variable that represents the current dealer equal to the randomly selected value from item f. above using the .get method in class ArrayList on the member variable that represents the Euchre table

5. Write method dealHand to do the following

Return type void

Empty parameter list

Call method setDealerAndLead

Create a local variable of data type int to represent the current player index initialized to the leadIdx member variable

Create a local variable of data type class Iterator explicitly only allowing for members of class Card set equal to member variable deck, calling method getDeck followed by method getIterator

For the first deal of two cards each, loop through the number of players

i.Call method dealOne passing as arguments the variables player index and the iterator

ii.If the current player value is greater than 3, reset the variable to the value of 0; otherwise increment the current player

For the second deal of three cards each, loop through the number of players

i.Call method dealTwo passing as arguments the variables player index and the iterator

ii.If the current player value is greater than 3, reset the variable to the value of 0; otherwise increment the current player

Set the member variable trump equal to the next card on the deck

6. Write method dealOne so it does the following

Return type void

Receives two parameters

i.Data type int representing the current player index

ii.Data type Iterator<Card> representing the iterator

Loops twice

i.Checks if the iterator has a next Card

Instantiate an instance of class Card set equal to method call next on the parameter iterator

Outputs to the console the dealt card and the player it was dealt to

Adds the card to the player’s hand by calling method getHand followed by method add, on the player instance stored at the parameter index location of member variable table

ii.Remove the current card from the HashSet using method call remove

7. Write method dealTwo so it does the following

Return type void

Receives two parameters

i.Data type int representing the current player index

ii.Data type Iterator<Card> representing the iterator

Loops thrice

i.Checks if the iterator has a next Card

Instantiate an instance of class Card set equal to method call next on the parameter iterator

Outputs to the console the dealt card and the player it was dealt to

Adds the card to the player’s hand by calling method getHand followed by method add, on the player instance stored at the parameter index location of member variable table

ii.Remove the current card from the HashSet using method call remove

Write method displayHands to do the following

Loops through the game teams

Call method outputHands in class Team

Explanation / Answer

Answer: This problems refers to some already existing classes. To complete the problem, access to those classes is necessary. However, given below is a skeleton for class 'Game':

--------------------------------------------

class Game {
private:
   Card trump; //trump of Card type
   Team **teams; //list of players
   int currentDealer; //index to represent current dealer
   int leadPlayer; //index to represent lead player
public:
   //constructor
   Game(){
       //add these after existing method calls.
       setTable();
       dealHand();
       displayHands();
   }

   //setTable() method
   void setTable()
   {
       //ToDo
   }

   //setDealerAndHand() method
   void setDealerAndHand()
   {
       //ToDo
   }

   //dealHand() method
   void dealHand()
   {
       //ToDo
   }

   //dealOne() method
   void dealOne(int currentPlayer, Iterator<Card> iterator)
   {
       //ToDo
   }

   //dealTwo() method
   void dealTwo(int currentPlayer, Iterator<Card> iterator)
   {
       //ToDo
   }
   virtual ~Game();
};

-----------------------------------------

Hope this helps you. You can modify this skeleton accordingly.