Question: Your Program For your program you will complete code that plays a simplified version of the War card game. In this game, the deck of

Your Program

For your program you will complete code that plays a simplified version of the War card game. In this game, the deck of cards is evenly divided among two players. The players are not allowed to look at the cards in their hand. On each round of the game, both players lay down the top card from their hand. The player with the higher value card wins both cards and places the cards on the bottom of his hand. For our version of the game, in the case of a tie, each player places their card back at the bottom of their hand (the real game has slightly different rules for ties). Game play continues until one of the players has all of the cards.

In order to simplify our program, our "deck" is a series of random numbers ranging from 1 to 13 (because a real deck of cards has 13 values). The size of the deck is set by a constant in the warGame.cpp file. This game can take a long time to play, so a deck size of 10 seems reasonable for testing the game. You can change the deck size if you wish.

I have written the main function for you: warGame.cpp. You should not make any modifications to this file (other than altering the constant for the deck size). You will modify the code in the warGame.h file. I have provided the function to print the results of each round of the game. I have also provided the function to create the "deck" of cards. You will write two functions, described below.

Remember to write small parts of the program at a time and test each part before moving on to the next part.

Function 1: Deal the Cards. This function takes the deck of cards and splits it between the two players by alternately dealing a card to each player. Note that the array for each player's hand is the same size of the deck. This is because we need to be able to store all cards in the winner's hand. Therefore, the array for each player's hand is a partially filled array. In the main function I initialized all elements of the players' hand arrays to zero. In our game, when an array element has the value zero it indicates that there is no card at that index. All of the cards must be placed at the beginning of the array. An example of a deck dealt to two players is shown below.

Deck:

3 1 13 5 8 4 3 10 6 9

Player 1's Hand:

3 13 8 3 6 0 0 0 0 0

Player 2's Hand:

1 5 4 10 9 0 0 0 0 0

Function 2: Shift the Cards Forward. This function moves all cards in a hand one place forward, removing the first card and setting the value of the last card to zero. This simulates a player removing a card from her hand. An example of a hand of cards before and after shifting is shown below.

Before shift:

3 13 8 3 6 0 0 0 0 0

After shift:

13 8 3 6 0 0 0 0 0 0

Note: I have made a design decision to write my functions to be very generic. I named the functions based on the task they perform, not based on the fact that we are using them for a card game. For example, I call the function that deals the cards "splitArray" not "dealCards". I have also given the function parameters generic names. This will make it easier for us to reuse these functions in another program without needing to make modifications to the functions.

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!