Question: # 5.33 # In this exercise you'll modify Chapter 4's script that simulates the dice game craps by using the techniques # you learned in

# 5.33 # In this exercise you'll modify Chapter 4's script that simulates the dice game craps by using the techniques # you learned in Section 5.17.2. # The script should receive a command-line argument indicating the number of games of craps to execute and use # two lists to track the total number of games won and lost on the first roll, second roll, third roll, etc. # Summarize as follows: # a) Display a horizontal bar plot indicating how many games are won and how many are lost # on the first roll, second roll, third roll, etc. # Since the game could continue indefinitely, you might track wins and losses through the first dozen rolls (of a pair of # dice), then maintain two counters that keep track of the wins and losses after 12 rolls- no matter how long the game gets. # Create separate bars for wins and losses. # b) What are the chances of winning at craps? # [Note: You should discover that craps is one of the fairest casino games. What do you suppose this means?] # c) What is the mean for the length of the game of craps? # The median? # The mode? # d) Do chances of winning improve with the length of the game?

# Chapter 4 code reference is as follows:

# fig04_02.py Example """Simulating the dice game Craps.""" import random

def roll_dice(): """Roll two dice and return their face values as a tuple.""" die1 = random.randrange(1, 7) die2 = random.randrange(1, 7) return (die1, die2) # pack die face values into a tuple

def display_dice(dice): """Display one roll of the two dice.""" die1, die2 = dice # unpack the tuple into variables die1 and die2 print(f'Player rolled {die1} + {die2} = {sum(dice)}')

die_values = roll_dice() # first roll display_dice(die_values)

# determine game status and point, based on first roll sum_of_dice = sum(die_values)

if sum_of_dice in (7, 11): # win game_status = 'WON' elif sum_of_dice in (2, 3, 12): # lose game_status = 'LOST' else: # remember point game_status = 'CONTINUE' my_point = sum_of_dice print('Point is', my_point)

# continue rolling until player wins or loses while game_status == 'CONTINUE': die_values = roll_dice() display_dice(die_values) sum_of_dice = sum(die_values)

if sum_of_dice == my_point: # win by making point game_status = 'WON' elif sum_of_dice == 7: # lose by rolling 7 game_status = 'LOST'

# display "wins" or "loses" message if game_status == 'WON': print('Player wins') else: print('Player loses')

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!