On 2011-10-09 08:25, col speed wrote:
Thanks for your prompt reply! Here's the whole thing:
import random
message = """Welcome to craps!!!! Place your bet
and roll the dice.
7 or 11 wins.
2, 3 or 12 loses.
Others are "point"."""
player = "Your"
dice = range(1, 7)
stake = 100
bet = 5
winmsg = "You have won!You have ${0} left.".format(stake)
losemsg = "You have lost! You have ${0} left.".format(stake)
players = ["Your", "My"]
def win(num):
if num in [7,11]:
return "win"
elif num in [2,3,12]:
return "lose"
else:
return "point"
def changePlayer(player):
if player == "Your":
return "My"
else:
return "Your"
def point(num):
while True:
raw_input("Roll")
uno, dos = random.choice(dice), random.choice(dice)
three = uno+dos
print "{0} + {1} = {2}".format(uno, dos, three)
print "Point is {0}. You scored {1}.".format(num, three)
if three == num:
return "win"
if three == 7:
return "lose"
else:
print "Try again."
print message
while stake:
print "{0} throw! You have ${1}. How much do you bet?".format(player,
stake)
bet = int(raw_input("$"))
stake -= bet
one, two = random.choice(dice), random.choice(dice)
print "{0} + {1} = {2}".format(one, two, one+two)
if win(one+two) == "win":
stake += bet*2
print winmsg
elif win(one+two) == "lose":
print losemsg
else:
if point(one+two) == "win":
Here you go into the function "point" the first time. Inside the
function you are in an infinite while-loop where you only exit if the
sum is either 7 ("lose") or equal the given parameter ("win"). Then you
compare the return value. In the case of "lose" you continue to the next
elif-statement:
stake += bet*2
print winmsg
elif point(one+two) == "lose":
Now you go into the function "point" a *second* time, in other words you
have to throw another 7 to leave the function with the return value
"lose". But just now you will print out the message for loosing the game:
print losemsg
player = changePlayer(player)
What you probably want is to go into "point" only once, save the result
value and check if it's "win" or "lose".
HTH,
Andreas
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor