Solve C++ Pig Dice Game: Aragorn Wins!

  • Context: C/C++ 
  • Thread starter Thread starter student2019
  • Start date Start date
  • Tags Tags
    C++ Dice Game
Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
1 reply · 4K views
student2019
Messages
1
Reaction score
0
Hello!
So for an assignment, we have to write a program for the pig dice game.

You are to finish the program below that implements the dice game PIG played by 2 human players.
Pig is a dice game where each player during their turn rolls a 6-sided die. If the player rolls a 2 through 6, they decide whether they want to keep their turn score or roll again. If they roll a 1, the player loses all the points for that turn, thus receiving a turn score of 0 and that turn is over.
The first player to reach 100 points or more wins.

This is the code I have so far. However, it does not work and the program ends up continuously running in the while loop when I want the output to be different for when diceRoll ==1. How can I fix this? Also how would I get rid of the statement "Do you want to roll again" at the end right before it outputs who the winner is?
Thank you!

Code:
code removed

This is a sample output of what the program is suppose to come out as:
Welcome to the dice game Pig!
The objective is to be first to score 100 points.

Player 1 - Enter your name: Aragorn

Player 2 - Enter your name: Legolas

Aragorn
You rolled a 6
Your score: 6
Do you want to roll again? (y/n): y

Aragorn
You rolled a 2
Your score: 8
Do you want to roll again? (y/n): y

Aragorn
You rolled a 6
Your score: 14
Do you want to roll again? (y/n): n

Legolas
You rolled a 4
Your score: 4
Do you want to roll again? (y/n): y

Legolas
You rolled a 5
Your score: 9
Do you want to roll again? (y/n): n

Aragorn
You rolled a 6
Your score: 20
Do you want to roll again? (y/n): y
*This part and on is what I cannot get for the code I had written
Aragorn
You rolled a 1 (PIG!)
Your turn is over
Your score: 14
Do you want to roll again? (y/n):y

Aragorn
You rolled a 5
Your score: 96
Do you want to roll again? (y/n): y

Aragorn
You rolled a 6
Your score: 102

Aragorn wins!
 
Last edited:
Physics news on Phys.org
student2019 said:
This is the code I have so far. However, it does not work and the program ends up continuously running in the while loop when I want the output to be different for when diceRoll ==1. How can I fix this? Also how would I get rid of the statement "Do you want to roll again" at the end right before it outputs who the winner is?
Thank you!

Hi student2019! ;)

I recommend splitting your code up into smaller functions.
That makes it easier to distinguish the situation where we've won and don't want to ask to roll again.

As for your while loop that doesn't end when you want it to, perhaps we should distinguish the total score of each player versus their turn scores?
The turn score becomes 0 when rolling a 1, but the total score does not.