Advertisement
Guest User

Untitled

a guest
Mar 29th, 2015
269
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.09 KB | None | 0 0
  1. # Tim Gleaves
  2. # Final Project
  3.  
  4. import random
  5.  
  6. # Intro
  7.  
  8. print "\t\t***Welcome to Roll the Dice***\n\n"
  9.  
  10. class DiceRoller:
  11.     def __init__(self):
  12.         self.dice = []
  13.  
  14.     numberOfDice = 6
  15.     numberOfSides = 6
  16.  
  17.     def getTotal(self):
  18.         total = 0
  19.         for d in self.dice:
  20.             total += d
  21.         return total
  22.  
  23.     def rollSingleDie(self):
  24.         return random.randrange(1, self.numberOfSides)
  25.  
  26.     def rollDice(self):
  27.        dice = []
  28.        for d in range(0,self.numberOfDice):
  29.             self.dice.append(self.rollSingleDie())
  30.  
  31.     def replaceDice(self,positions):
  32.         for pos in positions:
  33.             self.dice[pos] = self.rollSingleDie()
  34.        
  35. def getReplacements():
  36.     replacements = []
  37.     while (True):
  38.         try:
  39.             repdie = raw_input("Dice to replace (ENTER to end): ").strip()
  40.             if (repdie == ""):
  41.                 break
  42.  
  43.             pos = int(repdie) - 1
  44.             if pos < 0 or pos > DiceRoller.numberOfSides - 1:
  45.                 raise ValueError
  46.             if pos not in replacements:
  47.                 replacements.append(pos)
  48.            
  49.         except ValueError:
  50.             print "Please input a number between 1 and 6."
  51.        
  52.     return replacements
  53.  
  54. def bet(totalMoney):
  55.     playerBet = 0
  56.     try:
  57.         repdie = raw_input("Enter bet (max $%s): " % totalMoney)
  58.         playerBet = int(repdie)
  59.         if (playerBet > totalMoney):
  60.             raise ValueError
  61.     except ValueError:
  62.         print ("Invalid value.")
  63.         playerBet = bet(totalMoney)
  64.  
  65.     return playerBet
  66.  
  67. def computerReplace(roller):
  68.     positions = []
  69.     for i in range(0,len(roller.dice)-1):
  70.         d = roller.dice[i]
  71.         if d < 3:
  72.             positions.append(i)
  73.            
  74.     return positions
  75.  
  76. def main():
  77.     p1Money = 500
  78.  
  79.     while (True):
  80.         print "Current Player Total: $%s" % p1Money
  81.  
  82.         p1Roller = DiceRoller()
  83.         cpRoller = DiceRoller()
  84.  
  85.         print "\nPlayer 1st roll"
  86.         p1Roller.rollDice()
  87.         print "%s (%s)\n" % (p1Roller.dice, p1Roller.getTotal())
  88.  
  89.         print "\nComputer 1st roll"
  90.         cpRoller.rollDice()
  91.         print "%s (%s)\n" % (cpRoller.dice, cpRoller.getTotal())
  92.  
  93.         p1Rep = getReplacements()
  94.         cpRep = computerReplace(cpRoller)
  95.         p1Bet = bet(p1Money)
  96.        
  97.         print "\nPlayer 2nd roll"
  98.         p1Roller.replaceDice(p1Rep)  
  99.         print "%s (%s)\n" % (p1Roller.dice, p1Roller.getTotal())
  100.  
  101.         print "\nComputer 2nd roll"
  102.         cpRoller.replaceDice(cpRep)
  103.         print "%s (%s)\n" % (cpRoller.dice, cpRoller.getTotal())
  104.  
  105.         if p1Roller.getTotal() > cpRoller.getTotal():
  106.             winAmt = p1Bet * 2
  107.             p1Money += p1Bet
  108.             print "You WON $%s!\n" % winAmt
  109.             print "*****************************"
  110.         else:
  111.             p1Money = p1Money - p1Bet
  112.             print "You LOST $%s\n" % p1Bet
  113.             print "*****************************"
  114.  
  115.         if p1Money <= 0:
  116.             print "You're out of money. Game over."
  117.             break
  118.        
  119. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement