ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/cf.schmorp.de/maps/python/CFGamble.py
Revision: 1.1
Committed: Sun Feb 5 00:02:08 2006 UTC (18 years, 10 months ago) by root
Content type: text/x-python
Branch point for: UPSTREAM, MAIN
Log Message:
Initial revision

File Contents

# User Rev Content
1 root 1.1 #CFGamble
2     # Todd Mitchell
3     #The Python control file for Slot Machines and other such nonsense
4     #Please do not put CFPython functions in this file,
5     #but rather place these in the calling file (don't ask me why - it just feels right)
6    
7     import os.path
8     import shelve
9     import random
10    
11     import Crossfire
12    
13     class SlotMachine:
14     #sets up the file that holds all the slotmachine jackpots
15     #make sure this points to your writable var/crossfire directory
16     #you can delete that file to reset all the slotmachine jackpots
17     slotfile = os.path.join(Crossfire.LocalDirectory(),'SlotMachine_file')
18     slotdb = {}
19     def __init__(self,slotname,slotlist,minpot,maxpot):
20     slotdb = shelve.open(self.slotfile)
21     self.slotname = slotname
22     self.slotlist = slotlist
23     self.minpot = minpot
24     self.maxpot = maxpot
25    
26     def placebet(self,amount):
27     if not self.slotdb.has_key(self.slotname):
28     self.slotdb[self.slotname] = self.minpot+amount
29     else:
30     temp=self.slotdb[self.slotname]
31     self.slotdb[self.slotname]=temp+amount
32    
33     def payoff(self,amount):
34     temp=self.slotdb[self.slotname]
35     self.slotdb[self.slotname] = temp-amount
36    
37     def spin(self,slotnum):
38     result=[]
39     while slotnum >=1:
40     r = self.slotlist[random.randint(0,len(self.slotlist)-1)]
41     result.append(r)
42     slotnum=slotnum-1
43     return result
44    
45     def checkslot(self):
46     limit = self.slotdb[self.slotname]
47     if limit >= self.maxpot:
48     self.slotdb[self.slotname] = self.maxpot
49     elif limit < self.minpot:
50     self.slotdb[self.slotname] = self.minpot
51     return self.slotdb[self.slotname]
52