C/C++ Solve C++ Pig Dice Game: Aragorn Wins!

  • Thread starter Thread starter student2019
  • Start date Start date
  • Tags Tags
    C++ Dice Game
Click For Summary
SUMMARY

The discussion focuses on resolving issues in a C++ implementation of the Pig Dice Game, specifically addressing a while loop that fails to terminate correctly when a player rolls a 1. The user, identified as student2019, is advised to refactor their code into smaller functions to better manage game states and to differentiate between total scores and turn scores. The solution includes removing the prompt to roll again when a player wins, ensuring a smoother game flow.

PREREQUISITES
  • Understanding of C++ programming language
  • Familiarity with functions and control structures in C++
  • Knowledge of game logic implementation
  • Basic understanding of loops and conditionals in programming
NEXT STEPS
  • Refactor C++ code into smaller, manageable functions
  • Implement logic to separate total scores from turn scores
  • Learn about C++ input/output handling for user prompts
  • Explore debugging techniques for C++ programs
USEFUL FOR

C++ developers, students learning game development, and anyone interested in implementing turn-based game logic in programming.

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:
Technology 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.
 
We have many threads on AI, which are mostly AI/LLM, e.g,. ChatGPT, Claude, etc. It is important to draw a distinction between AI/LLM and AI/ML/DL, where ML - Machine Learning and DL = Deep Learning. AI is a broad technology; the AI/ML/DL is being developed to handle large data sets, and even seemingly disparate datasets to rapidly evaluated the data and determine the quantitative relationships in order to understand what those relationships (about the variaboles) mean. At the Harvard &...

Similar threads

Replies
17
Views
10K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 17 ·
Replies
17
Views
2K
  • · Replies 11 ·
Replies
11
Views
4K
  • · Replies 53 ·
2
Replies
53
Views
9K
  • · Replies 2 ·
Replies
2
Views
4K
  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 33 ·
2
Replies
33
Views
7K
  • · Replies 2 ·
Replies
2
Views
7K