X-Git-Url: https://scm.cri.ensmp.fr/git/minwii.git/blobdiff_plain/346a9b8e1fcfe30629f0d1ee4675e9e8f89890cf..4c4732c6ed8cb0aaa70fb2d4c6e5a958868c5349:/src/pgu/high.py diff --git a/src/pgu/high.py b/src/pgu/high.py deleted file mode 100644 index e05d22a..0000000 --- a/src/pgu/high.py +++ /dev/null @@ -1,154 +0,0 @@ -"""Classes for handling high score tables. -""" - -import os - -def High(fname,limit=10): - """Create a Highs object and returns the default high score table. - -
High(fname,limit=10)- -
You can iterate them:
-
- for e in myhigh:
- print e.score,e.name,e.data
-
-
- You can modify them:
-
- myhigh[0].name = 'Cuzco'
-
-
- You can find out their length:
-
- print len(myhigh)
-
- """
-
- def __init__(self,highs,limit=10):
- self.highs = highs
- self._list = []
- self.limit = limit
-
- def save(self):
- """Save the high scores.
-
- _High.save()- """ - self.highs.save() - - def submit(self,score,name,data=None): - """Submit a high score to this table. - -
_High.submit(score,name,data=None)- -
return -- the position in the table that the score attained. None if the score did not attain a position in the table.
- """ - n = 0 - for e in self._list: - if score > e.score: - self._list.insert(n,_Score(score,name,data)) - self._list = self._list[0:self.limit] - return n - n += 1 - if len(self._list) < self.limit: - self._list.append(_Score(score,name,data)) - return len(self._list)-1 - - def check(self,score): - """Check if a score will attain a position in the table. - -_High.check(score)- -
return -- the position the score will attain, else None
- """ - n = 0 - for e in self._list: - if score > e.score: - return n - n += 1 - if len(self._list) < self.limit: - return len(self._list) - - - def __iter__(self): - return self._list.__iter__() - - def __getitem__(self,key): - return self._list[key] - - def __len__(self): - return self._list.__len__() - - -class Highs: - """The high score object. - -Highs(fname,limit=10)-
You may access _High objects through this object:
- -
- my_easy_hs = highs['easy']
- my_hard_hs = highs['hard']
-
-
- """
- def __init__(self,fname,limit=10):
- self.fname = fname
- self.limit = limit
- self.load()
-
- def load(self):
- """Re-load the high scores.
-
- Highs.load()- """ - - self._dict = {} - try: - f = open(self.fname) - for line in f.readlines(): - key,score,name,data = line.strip().split("\t") - if key not in self._dict: - self._dict[key] = _High(self,self.limit) - high = self._dict[key] - high.submit(int(score),name,data) - f.close() - except: - pass - - def save(self): - """Save the high scores. - -
Highs.save()- """ - - f = open(self.fname,"w") - for key,high in self._dict.items(): - for e in high: - f.write("%s\t%d\t%s\t%s\n"%(key,e.score,e.name,str(e.data))) - f.close() - - def __getitem__(self,key): - if key not in self._dict: - self._dict[key] = _High(self,self.limit) - return self._dict[key]