Advertisement
Guest User

Untitled

a guest
Nov 8th, 2011
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.91 KB | None | 0 0
  1. import random
  2. import time
  3.  
  4. START_MONEY     = 100       # pocatecni kapital (pocet zetonu)
  5. ROUNDS          = 1000000.0 # maximalni pocet kol
  6. MINIMAL_STAKE   = 0.01
  7.  
  8. ## Vyjimka vyvolana na konci hry (dosazeni maximalniho poctu kol nebo vycerpani kapitalu).
  9. ## Vypise stav konta a ukonci beh programu.
  10. class GameOver:
  11.     def __init__(self):
  12.         print "Vysledek:", game.getBallance(), " (", game.getRoundNumber(), " - ", (game.getRoundNumber() / ROUNDS) * 100.0, "%)"
  13.         print "Rekord:", game.getMaximum(), "zetonu"
  14.         print "Minimum", game.getMinimum(), "zetonu"
  15.         exit()
  16.    
  17. ## Implementace vlastni hry.
  18. class Game:
  19.  
  20.     # Inicializuje promenne
  21.     def __init__(self):
  22.         self.ballance   = START_MONEY
  23.         self.round      = 0
  24.         self.maximum    = self.ballance
  25.         self.minimum    = self.ballance
  26.    
  27.     # Vsadi castku "stake" na cislo "number".
  28.     # Vraci:
  29.     #   - cislo 0: padlo cislo 0
  30.     #   - cislo 1: padlo cislo 1
  31.     #   - cislo 2: sazka byla vetsi nez aktualni zustatek NEBO byla prilis mala
  32.     def spin(self, number, stake):
  33.         if (self.round >= ROUNDS) or (self.ballance <= 0):
  34.             raise GameOver
  35.            
  36.         if (self.ballance < stake) or (stake < MINIMAL_STAKE):
  37.             return 2
  38.            
  39.         result = random.randint(0, 1)
  40.        
  41.         if result == number:
  42.             self.ballance = self.ballance + stake
  43.         else:
  44.             self.ballance = self.ballance - stake
  45.        
  46.         if self.maximum < self.ballance:
  47.             self.maximum = self.ballance
  48.  
  49.         if self.minimum > self.ballance:
  50.             self.minimum = self.ballance
  51.        
  52.         self.round += 1
  53.         return result
  54.        
  55.     # Vrati aktualni pocet zetonu.
  56.     def getBallance(self):
  57.         return self.ballance
  58.        
  59.     # Vrati cislo aktualniho kola
  60.     def getRoundNumber(self):
  61.         return self.round
  62.        
  63.     # Vrati rekordni stav konta (pocet zetonu) za danou hru
  64.     def getMaximum(self):
  65.         return self.maximum
  66.  
  67.     # Vrati nejnizsi stav konta (poctu zetonu) za danou hru
  68.     def getMinimum(self):
  69.         return self.minimum
  70.        
  71.     # Okamzite ukonci hru
  72.     def exitGame(self):
  73.         raise GameOver
  74.  
  75. game = Game()
  76.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement