189k views
4 votes
Python

The goal of this assignment is to build a simulation of a popular children’s dice game named Beat That. Beat That is an educational game in which children learn strategic thinking and the concept of place value. While the rules of the game can be flexible, we will be playing a basic version in which 2 players (Player A and Player B) are rolling 2 dice in a 5-round game.

Game play is based on rounds. In each round, players take a turn in which they roll 2 dice. After rolling the dice, the player decides how to use the two dice values to form a 2-digit number. The goal is to arrange the digits so that they form the highest number possible. Since you are developing your computer programming skills rather than your number literacy skills, your program will automatically make the choice for the player – choosing the highest of the two possible combinations as the player’s number choice for that round. In choosing for the player in this manner you are simulating the play of expert player of Beat That rather than simulating the play of a novice.

At the close of the round, your program will compare players’ number choices for that round to determine the round scoring. The player with the highest number choice wins the round. There are 3 possible scoring outcomes of a round:

• The Players Tie this Round • Player A Wins this Round • Player B Wins this Round

The program will print a message to announce the outcome of the round.

The player who wins a round scores 1 point in the overall game. The player who loses the round does not score a point in the overall game. If the players are tied for the round, then neither player scores a point in the overall game.

When 5 rounds have been played, the program will determine the outcome of the overall game based upon points earned. There are 3 possible outcomes of a game:

• The Players Tie the Game • Player A Wins the Game • Player B Wins the Game

The python program will print a message to announce the outcome of the game. Based upon the description above, the program should implement the functionality for playing a 5-round game of Beat That.

When coding and testing this program, follow the approach that I take in the second part of the tutorial video where I design and build a program that simulates a multi-round Coin Toss game.

When this program is run, the console session should look like this:
Playing round 1 of Beat That... Player A rolls (2, 1) Player A chooses 21 Player B rolls (5, 2) Player B chooses 52 Player B Wins This Round!
Playing round 2 of Beat That... Player A rolls (2, 2) Player A chooses 22 Player B rolls (1, 5) Player B chooses 51 Player B Wins This Round!
Playing round 3 of Beat That... Player A rolls (4, 2) Player A chooses 42 Player B rolls (6, 1) Player B chooses 61 Player B Wins This Round!
Playing round 4 of Beat That... Player A rolls (6, 4) Player A chooses 64 Player B rolls (4, 2) Player B chooses 42 Player A Wins This Round!
Playing round 5 of Beat That... Player A rolls (2, 5) Player A chooses 52 Player B rolls (1, 5) Player B chooses 51 Player A Wins This Round!

7
Game score: Player A has won 2 rounds. Player B has won 3 rounds. Player B Wins This Game!
Before finishing your work . Please remember to apply refactoring and retesting steps

1 Answer

6 votes

Answer:

Check the explanation

Step-by-step explanation:

from random import randint

def startGame(round,p1Name,p2Name,p1Wins,p2Wins):

print("\\Playing round", round ,"of Beat That...")

print(p1Name,"rolls")

p1 = rollDice(p1Name)

print(p2Name,"rolls")

p2 = rollDice(p2Name)

if p1 > p2:

print(p1Name,"Wins this Round!")

p1Wins += 1

elif p2 > p1:

print(p2Name,"Wins this Round!")

p2Wins +=1

else:

print("The Players Tie this Round")

return p1Wins,p2Wins

def maxNumber(num):

a = []

for i in range(len(num)):

a.append(max(num))

num.remove(max(num))

maxNum = ''.join(map(str,a))

return maxNum

def getDiceRollValue(numOfDice):

num = []

for i in range(numOfDice):

a = randint(1, 6)

num.append(a)

return num

def rollDice(playerName):

rollValue = getDiceRollValue(numOfDice)

print(rollValue)

maxNumOutofRoll = maxNumber(rollValue)

print(playerName, "chooses",maxNumOutofRoll)

return maxNumOutofRoll

def winner(p1Name,p2Name,p1Wins,p2Wins):

print("Game Score:",p1Name,"has won",p1Wins,"rounds.",p2Name,"has won",p2Wins,"rounds.")

if p1Wins > p2Wins:

print(p1Name,"Wins This Game!")

elif p2Wins > p1Wins:

print(p2Name,"Wins This Game!")

else:

print("The Players Tie the Game")

numOfDice = 2

numOfRounds = 5

p1Name = "Player 1"

p2Name = "Player 2"

p1Wins = 0

p2Wins = 0

for i in range(1,numOfRounds+1):

p1Wins,p2Wins = startGame(i,p1Name,p2Name,p1Wins,p2Wins)

winner(p1Name,p2Name,p1Wins,p2Wins)

User Salih Can
by
4.5k points