dabodemo Commit
Revision 405
Date: 2006-06-16 08:19:00 -0700 (Fri, 16 Jun 2006)
Author: ed

Changed:
U   trunk/games/bubblet/BubbleBizobj.py
U   trunk/games/bubblet/main.py

Log:
Updated this demo to use the new dPref-based preference/setting management.
This greatly simplifies the code needed to manage high game scores, etc.


Diff:
Modified: trunk/games/bubblet/BubbleBizobj.py
===================================================================
--- trunk/games/bubblet/BubbleBizobj.py 2006-06-06 20:47:13 UTC (rev 404)
+++ trunk/games/bubblet/BubbleBizobj.py 2006-06-16 15:19:00 UTC (rev 405)
@@ -4,7 +4,6 @@
 import random
 import time
 import os
-from xml.dom import minidom
 
 class BubbleBizobj(biz.dBizobj):
        def beforeInit(self):
@@ -15,45 +14,20 @@
                self.__message = ""
                self.__callbackFunc = None
                self.__gameOver = False
-               self.statsFileName = "stats.xml"
-               self.statsNumGamesTag = "numbergames"
-               self.statsTotalPointsTag = "totalpoints"
-               self.statsHighGameTag = "highgame"
-               self.__statsNumberOfGames = 0
-               self.__statsTotalPoints = 0
-               self.__statsHighGame = 0
+               self.BasePrefKey = "dabo.demo.games.Bubblet"
                self.__isNewHighGame = False
 
        
        def afterInit(self):
                # Don't use getFieldVal, since we don't have fields
                self.useFieldProps = False
-               # Read in the stats file, if any
-               try:
-                       dom = minidom.parse(self.statsFileName)
-                       self.NumberOfGames = 
int(dom.getElementsByTagName(self.statsNumGamesTag)[0].childNodes[0].data)
-                       self.TotalPoints = 
int(dom.getElementsByTagName(self.statsTotalPointsTag)[0].childNodes[0].data)
-                       self.HighGame = 
int(dom.getElementsByTagName(self.statsHighGameTag)[0].childNodes[0].data)
-               except StandardError, e:
-                       # The file doesn't exist
-                       pass
        
-       
+
        def writeStats(self):
-               imp = minidom.getDOMImplementation()
-               doc = imp.createDocument(None, "bubbletstats", None)
-               top = doc.documentElement
-               elNum = doc.createElement(self.statsNumGamesTag)
-               elNum.appendChild( doc.createTextNode(str(self.NumberOfGames)) )
-               elTot = doc.createElement(self.statsTotalPointsTag)
-               elTot.appendChild( doc.createTextNode(str(self.TotalPoints)) )
-               elHigh = doc.createElement(self.statsHighGameTag)
-               elHigh.appendChild( doc.createTextNode(str(self.HighGame)) )
-               top.appendChild(elNum)
-               top.appendChild(elTot)
-               top.appendChild(elHigh)
-               open(self.statsFileName, "w").write(doc.toxml())
-               doc.unlink()            
+               prf = self.PreferenceManager
+               prf.numbergames = self.NumberOfGames
+               prf.totalpoints = self.TotalPoints
+               prf.highgame = self.HighGame
        
        
        def newGame(self):
@@ -297,57 +271,91 @@
        def getCallback(self):
                return self.__callbackFunc
                
+       # Begin property definitions    
+       def _getBubbleScore(self):
+               return (self.selCount * (self.selCount-1))
+
        
+       def _getGameOver(self):
+               return self.__gameOver
+
+       def _setGameOver(self, val):
+               self.__gameOver = val
+       
+
+       def _getHighGame(self):
+               ret = self.PreferenceManager.highgame
+               if not isinstance(ret, int):
+                       ret = 0
+               return ret
+
+       def _setHighGame(self, val):
+               self.PreferenceManager.highgame = val
+
+
+       def _getIsNewHighGame(self):
+               return self.__isNewHighGame
+
+       def _setIsNewHighGame(self, val):
+               self.__isNewHighGame = val
+
+
+       def _getMessage(self):
+               return self.__message
+
+       def _setMessage(self, msg):
+               self.__message = msg
+
+
+       def _getGames(self):
+               ret = self.PreferenceManager.numbergames
+               if not isinstance(ret, int):
+                       ret = 0
+               return ret
+
+       def _setGames(self, val):
+               self.PreferenceManager.numbergames = val
+
+
        def _getScore(self):
                return self.__score
+
        def _setScore(self, val):
                self.__score = val
-       Score = property(_getScore, _setScore, None,
-               _("Current score of the game"))
+
+
+       def _getTotalPoints(self):
+               ret = self.PreferenceManager.totalpoints
+               if not isinstance(ret, int):
+                       ret = 0
+               return ret
+
+       def _setTotalPoints(self, val):
+               self.PreferenceManager.totalpoints = val
                
-       def _getMessage(self):
-               return self.__message
-       def _setMessage(self, msg):
-               self.__message = msg
-       Message = property(_getMessage, _setMessage, None,
-                       _("Status Message"))
-                       
-       def _getBubbleScore(self):
-               return (self.selCount * (self.selCount-1))
+
        BubbleScore = property(_getBubbleScore, None, None,
                        _("Current score of bubbles"))
-       
-       def _getGameOver(self):
-               return self.__gameOver
-       def _setGameOver(self, val):
-               self.__gameOver = val
+
        GameOver = property(_getGameOver, _setGameOver, None,
                        _("Status of the game"))
-                       
-       def _getStatsGames(self):
-               return self.__statsNumberOfGames
-       def _setStatsGames(self, val):
-               self.__statsNumberOfGames = val
-       NumberOfGames = property(_getStatsGames, _setStatsGames, None,
+
+       HighGame = property(_getHighGame, _setHighGame, None,
+               _("High score"))
+
+       IsNewHighGame = property(_getIsNewHighGame, _setIsNewHighGame, None,
+               _("Is the current game the new high game?"))
+
+       Message = property(_getMessage, _setMessage, None,
+                       _("Status Message"))
+
+       NumberOfGames = property(_getGames, _setGames, None,
                _("Number of games played"))
-               
-       def _getStatsTotalPoints(self):
-               return self.__statsTotalPoints
-       def _setStatsTotalPoints(self, val):
-               self.__statsTotalPoints = val
-       TotalPoints = property(_getStatsTotalPoints, _setStatsTotalPoints, None,
+
+       Score = property(_getScore, _setScore, None,
+               _("Current score of the game"))
+
+       TotalPoints = property(_getTotalPoints, _setTotalPoints, None,
                _("Total number of points recorded"))
                
-       def _getStatsHighGame(self):
-               return self.__statsHighGame
-       def _setStatsHighGame(self, val):
-               self.__statsHighGame = val
-       HighGame = property(_getStatsHighGame, _setStatsHighGame, None,
-               _("High score"))
-               
-       def _getIsNewHighGame(self):
-               return self.__isNewHighGame
-       def _setIsNewHighGame(self, val):
-               self.__isNewHighGame = val
-       IsNewHighGame = property(_getIsNewHighGame, _setIsNewHighGame, None,
-               _("Is the current game the new high game?"))
+

Modified: trunk/games/bubblet/main.py
===================================================================
--- trunk/games/bubblet/main.py 2006-06-06 20:47:13 UTC (rev 404)
+++ trunk/games/bubblet/main.py 2006-06-16 15:19:00 UTC (rev 405)
@@ -5,8 +5,6 @@
 def main():
        app = dabo.dApp()
        app.setAppInfo("appName", "Bubblet")
-       app.UserSettingProvider.SettingsDirectoryName = "Dabo"
-       app.UserSettingProvider.SettingsFileName = "BubbletDemo.ini"
        app.MainFormClass = BubbletForm
        app.start()
 




_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-dev

Reply via email to