ménage (par le vide)
[minwii.git] / src / pgu / high.py
diff --git a/src/pgu/high.py b/src/pgu/high.py
deleted file mode 100644 (file)
index e05d22a..0000000
+++ /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.
-    
-    <pre>High(fname,limit=10)</pre>
-    
-    <dl>
-    <dt>fname <dd>filename to store high scores in
-    <dt>limit <dd>limit of scores to be recorded, defaults to 10
-    </dl>
-    """
-    return Highs(fname,limit)['default']
-    
-class _Score:
-    def __init__(self,score,name,data=None):
-        self.score,self.name,self.data=score,name,data
-    
-class _High:
-    """A high score table.  These objects are passed to the user, but should not be created directly.
-    
-    <p>You can iterate them:</p>
-    <code>
-    for e in myhigh:
-        print e.score,e.name,e.data
-    </code>
-        
-    <p>You can modify them:</p>
-    <code>
-    myhigh[0].name = 'Cuzco'
-    </code>
-    
-    <p>You can find out their length:</p>
-    <code>
-    print len(myhigh)
-    </code>
-    """
-    
-    def __init__(self,highs,limit=10):
-        self.highs = highs
-        self._list = []
-        self.limit = limit
-        
-    def save(self):
-        """Save the high scores.
-        
-        <pre>_High.save()</pre>
-        """
-        self.highs.save()
-        
-    def submit(self,score,name,data=None):
-        """Submit a high score to this table.
-        
-        <pre>_High.submit(score,name,data=None)</pre>
-        
-        <p>return -- the position in the table that the score attained.  None if the score did not attain a position in the table.</p>
-        """
-        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.
-        
-        <pre>_High.check(score)</pre>
-        
-        <p>return -- the position the score will attain, else None</p>
-        """
-        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.
-    
-    <pre>Highs(fname,limit=10)</pre>
-    <ul>
-    <dt>fname <dd>filename to store high scores in
-    <dt>limit <dd>limit of scores to be recorded, defaults to 10
-    </ul>
-    
-    <p>You may access _High objects through this object:</p>
-   
-    <code> 
-    my_easy_hs = highs['easy']
-    my_hard_hs = highs['hard']
-    </code>
-    
-    """
-    def __init__(self,fname,limit=10):
-        self.fname = fname
-        self.limit = limit
-        self.load()
-        
-    def load(self):
-        """Re-load the high scores.
-        
-        <pre>Highs.load()</pre>
-        """
-        
-        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.
-        
-        <pre>Highs.save()</pre>
-        """
-        
-        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]