Velocity Reviews > Can any one help with solving this program it just doesnt take probability of the second team

# Can any one help with solving this program it just doesnt take probability of the second team

Arun Nair
Guest
Posts: n/a

 10-26-2006
''' Can anyone help me with this program it just takes probability of
the first team and runs the program doesnt takes the probability of the
second team even though specified'''

from random import *

def volleySimulation():
printInstructions()
probA, probB, n = getInputs()
winA, winB = simGames(n, probA, probB)
printSummary(winA, winB)

def printInstructions():
print "This program stimulates a game of Volley Ball between two
teams i.e. Team A and Team B"
print "The abilities of each team is indicated by a probability
that determines which team wins the points."
print "We assume that Team A always serves first"

def getInputs():
print "Enter the probability for both team winning the serve in
between 0 and 1"
probA = input("Enter the probability of Team A winning a serve")
probB = input("Enter the probability of Team B winning a serve")
n = input("Enter the number of games that you want to simulate:")
return probA, probB, n

def simGames(n, probA, probB):
winA = 0
winB = 0
for i in range(n):
scoreA, scoreB = simGame(probA, probB)
if scoreA > scoreB:
winA = winA + 1
else:
winB = winB + 1
return winA, winB

def simGame(probA, probB):
scoreA = 0
scoreB = 0
serving = "A"
while not gameOver(scoreA, scoreB):
if serving == "A":
if random() < probA:
scoreA = scoreA + 1
else:
serving == "B"
else:
if random() < probB:
scoreB = scoreB + 1
else:
serving == "A"
return scoreA, scoreB

def gameOver(a, b):
return (a == 15 or b == 15) and ((a - b) > 2 ) or ((a - b) < -2)

def printSummary(winA, winB):
n = winA + winB
print "Games simulated:", n
print "Wins for A: %d (%0.1f%%)" % (winA, float(winA)/n*100)
print "Wins for B: %d (%0.1f%%)" % (winB, float(winB)/n*100)

volleySimulation()

Peter Otten
Guest
Posts: n/a

 10-26-2006
Arun Nair wrote:

> ''' Can anyone help me with this program it just takes probability of
> the first team and runs the program doesnt takes the probability of the
> second team even though specified'''

> def simGame(probA, probB):
> scoreA = 0
> scoreB = 0
> serving = "A"
> while not gameOver(scoreA, scoreB):
> if serving == "A":
> if random() < probA:
> scoreA = scoreA + 1
> else:
> serving == "B"

Hint: this is not an assignment.

> else:
> if random() < probB:
> scoreB = scoreB + 1
> else:
> serving == "A"

Same thing.

> return scoreA, scoreB

Peter

Arun Nair
Guest
Posts: n/a

 10-26-2006
Thanks a ton peter its working.

Peter Otten wrote:
> Arun Nair wrote:
>
> > ''' Can anyone help me with this program it just takes probability of
> > the first team and runs the program doesnt takes the probability of the
> > second team even though specified'''

>
> > def simGame(probA, probB):
> > scoreA = 0
> > scoreB = 0
> > serving = "A"
> > while not gameOver(scoreA, scoreB):
> > if serving == "A":
> > if random() < probA:
> > scoreA = scoreA + 1
> > else:
> > serving == "B"

>
> Hint: this is not an assignment.
>
> > else:
> > if random() < probB:
> > scoreB = scoreB + 1
> > else:
> > serving == "A"

>
> Same thing.
>
> > return scoreA, scoreB

>
> Peter

Paul McGuire
Guest
Posts: n/a

 10-26-2006
"Arun Nair" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed) ups.com...
> ''' Can anyone help me with this program it just takes probability of
> the first team and runs the program doesnt takes the probability of the
> second team even though specified'''
>
> from random import *
>
> def volleySimulation():
> printInstructions()
> probA, probB, n = getInputs()
> winA, winB = simGames(n, probA, probB)
> printSummary(winA, winB)
>
> def printInstructions():
> print "This program stimulates a game of Volley Ball between two
> teams i.e. Team A and Team B"

While I was "stimulated" by reading this post, I think you mean "simulates"
here.

-- Paul