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