Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

( Code has to be in Python ) Yacht-z - Create a dice game that uses the Die class that was given in the lecture

(Code has to be in Python) Yacht-z - Create a dice game that uses the Die class that was given in the lecture notes.

Create a new class called Die in a file called die.py, add the code from the lecture notes, and then add an equals method by overloading the == operator. Then create a second file for your main program.

The player rolls a set of 3 dice. If two of the dice are the same then the player receives 1 point for a pair. If all of the dice are the same, then the player receives 3 points for 3-of-a-kind (note: if a player gets a 3-of-a-kind they shouldnt also get points for having a pair). If the dice values are in a series, then the player receives 2 points (ex. 1-2-3, 3-2-1, 2-1-3, or any other order of these values would be considered a series).

Create a list of three Die objects and a variable for the players points in your main program. Make three functions that pass in the list of dice to check for each of the three different win types that use the Dies overloaded ==, >, and/or < operators, return the number of points if they met the win condition. Add a display function that passes in the list of dice and displays their values by calling the Dies string method. Create a function thats called takeTurn that passes in the list of dice, rolls each of the dice, displays their values by calling the display function you wrote, determines if the player met any of the win conditions using the functions you wrote, and then returns the points back to the main function where it is added to their point total.

Display a running sum of their points and ask the player if they want to continue playing after every roll, display their final points when they decide to quit. Write a function to take in the users input and check it for valid inputs (Y/N or y/n).

Example Output:

Yacht-z

Rolling Dice... 1D6 = 2, 2D6 = 4, 3D6 = 3

You got a series of 3!

Score = 2 points.

Play again? (Y/N) Y

Rolling Dice... 1D6 = 3, 2D6 = 1, 3D6 = 1

You got a pair!

Score = 3 points.

Play again? (Y/N) Y

Rolling Dice... 1D6 = 4, 2D6 = 4, 3D6 = 4

You got 3 of a kind! Score = 6 points.

Play again? (Y/N) Y

Rolling Dice... 1D6 = 3, 2D6 = 6, 3D6 = 1

Awww. Too Bad.

Score = 6 points. Play again? (Y/N) N

Final Score = 6 points

Code for die.py from lecture notes

import random

# die.py class to represent a single die

class Die:

Constructor sets the initial values of the data members (attributes of) the object.

def__init__(self,sides):

self.___numSides = sides self.__value = self.roll()

Methods actions (or operations) the object can perform.

# Rolls the die and returns the result

def roll( self ):

self.___value = random.randint( 1, self.___numSides )

return self.___value

Accessor retrieves the value of one of the data members.

# Returns the value of the die

def getValue( self ): return self.__value

Mutator changes the value of one of the data members.

# Allows the die to be set to a selected value

def setValue( self, val ):

if val > 0 and value <= self.__numSides:

self.__value = val

return True # successfully set the value

return False; # failed the test

To String returns the string representation of the object.

# Returns the string representation of the die

def __str__( self ):

return D + str( self.__numSides ) + = + str( self.__value )

Overload operators

# Overload + operator to sum two dice

def __add__ ( self, other ):

return self.__value + other.__value

# Overload > operator to compare two dice

def __gt__ ( self, other ):

return self.__value > other.__value

# Overload < operator to compare two dice

def __lt__ ( self, other ):

return self.__value < other.__value

# Overload == operator def __eq__ ( self, other ):

return self.__value == other.__value

Objects- don't know if the instructions for this project require this part but just in case I'll add it

import die

# game.py two players roll a die to see who rolls higher

p1 = die.Die( 6 )

p2 = die.Die( 6 )

p1.roll()

p2.roll()

print( p1 )

print( p2 )

if p1 > p2:

print( Player 1 Wins )

elif p1 < p2:

print( Player 2 Wins )

else:

print( Tie ) print( The sum of the dice is:, p1 + p2 )

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Database Processing

Authors: David J. Auer David M. Kroenke

13th Edition

B01366W6DS, 978-0133058352

More Books

Students also viewed these Databases questions

Question

What is database?

Answered: 1 week ago

Question

What are Mergers ?

Answered: 1 week ago

Question

5. Do you have any foreign language proficiency?

Answered: 1 week ago