ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/cf.schmorp.de/maps/python/CFGamble.py
Revision: 1.1.1.1 (vendor branch)
Committed: Sun Feb 5 00:02:08 2006 UTC (18 years, 10 months ago) by root
Content type: text/x-python
Branch: UPSTREAM, MAIN
CVS Tags: post_fixaltar, last_stable, post_fixaltar2, rel-2_82, rel-2_81, rel-2_80, pre_coinconvert, UPSTREAM_2006_03_15, rel-3_0, rel-2_6, rel-2_7, rel-2_4, rel-2_5, rel-2_2, rel-2_0, rel-2_1, rel-2_72, rel-2_73, rel-2_71, rel-2_76, rel-2_77, rel-2_74, rel-2_75, rel-2_54, rel-2_55, rel-2_56, rel-2_79, UPSTREAM_2006_02_01, rel-2_53, pre_material_cfarch_normalize_run, rel-2_32, pre_fixconverter, post_coinconvert, pre_fixaltar2, pre_map_rename, UPSTREAM_2006_02_22, rel-2_90, rel-2_92, rel-2_93, rel-2_78, post_fixconverter, pre_fixaltar, rel-2_61, rel-2_43, rel-2_42, rel-2_41, HEAD
Changes since 1.1: +0 -0 lines
Log Message:
Initial Import

File Contents

# Content
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