Question: Create a dice game that awards the user points for pair, three-of-a-kind, or a series. Use the following class diagram for your program. Die
Create a dice game that awards the user points for pair, three-of-a-kind, or a series. Use the following class diagram for your program. Die sides: int value: int _init_ (self, sides-6) roll(self): int _str_(self): str (self, other): bool eq_(self, other): bool _sub_(self, other): int Player dice: Die list points: int _init_ (self) get points(self): int roll dice(self) has_pair(self): bool has three of a kind (self): bool has_series(self): bool _str_(self): str Die class (die py) - has two attributes: the number of sides of the die and the value of the rolled die. 1. __init__(self, side 6-assigns the number of sides from the value passed in. Set value to 0 or to the returned value of roll(). 2. roll (self)-generate a random number between 1 and the number of sides and assign it to the Die's value. Return the value. 3. ____ (self) return the Die's value as a string. 4. __1_(self, other) -return true if the value of self is less than the value of other. 5.(self, other) -return true if both the values of self and other are equal. 6.__sub (self, other) - return the difference between the value of self and the value of other. Player class (player.py) - has two attributes: a list of 3 Die objects and the player's points. 1. ___inis (self-constructs and sorts the list of three Die objects and initializes the player's points to 0. 2. get points (seif) -returns the player's points. 3. roll dice (self) - calls roll on each of the Die objects in the dice list and sorts the list. 4. has paiz (self) -returns true if two dice in the list have the same value (uses ==). Increments points by 1. 5. has three of a kind (self) - returns true if all three dice in the list have the same value (uses ==). Increments points by 3. 6. has series(self)-returns true if the values of each of the dice in the list are in a sequence (ex. 1.2.3 or 2,34 or 3.4.5 or 45.6) (uses -). Increments points by 2. 7. __str_(self)-returns a string in the format: "D1=2, D2=4, D3=6", Main file (main.py) - has one function named take_turn that passes in a Player object. The take_turn function should: roll the player's dice, display the dice, check for and display any win types (pair, series, three-of-a-kind), and display the updated score. The main function should construct a player object, and then repeatedly call take_turn until the user chooses to end the game. Display the final points at the end of the game. Use the check_input module's get_yes no function to prompt the user to continue or end the game. Use docstrings to document each class, method, and function. Example Output (user input in italics): -Yahtzee- D1-1 D2-4 D3-5 Aww. Too Bad. Score 0 Play again? (Y/N): g Invalid input - should be a 'Yes' or 'No'. Play again? (Y/N): y D1-3 D2=3 D3=5 You got a pair! Score = 1 Play again? (Y/N): y Notes: D1-3 D2-4 D3=5 You got a series of 3! Score = 3 Play again? (Y/N): y D1-1 D2-1 D3=1 You got 3 of a kind! Score = 6 Play again? (Y/N): n Game Over. Final Score 6 1. You should have 4 different files: die.py, player.py, check_input.py, and main.py. 2. Check all user input using the get_yes_no function in the check input module. 3. Do not create any extra methods or add any extra parameters. 4. Please do not create any global variables or use the attributes globally. Only access the attributes using the class's methods. 5. Do not call any of the methods using the double underscores (ex. use == not__eg__). 6. Use docstrings to document the class, each of its methods, and the functions in the main file. See the lecture notes and the Coding Standards reference document for examples. 7. Place your names, date, and a brief description of the program in a comment block at the top of your main file. Place brief comments throughout your code. 8. Thoroughly test your program before submitting: a. Make sure that the user input is validated. b. Make sure that the dice values are sorted. c. Make sure that each of the win types are detected correctly. d. Make sure that the user is not awarded for both a pair and a three-of-a-kind simultaneously. e. Make sure that each of the win types awards the correct number of points. f. Make sure that the game continues and ends correctly. g. Make sure that the final score is displayed at the end.
Step by Step Solution
3.39 Rating (149 Votes )
There are 3 Steps involved in it
diepy This file defines a Die class that represents a single die It has methods to roll the die compare two dice and subtract one die from another It also has a str method that returns the current val... View full answer
Get step-by-step solutions from verified subject matter experts
