コード例 #1
0
 def getUser(self, username):
     if (username != ""):
         listOfUser = UserFileManagement().getUsers()
         user = filter(lambda x: x[0] == username, listOfUser)
         if (user):
             return user[0]
     return None
コード例 #2
0
 def addStatisticsFor(self, username, numKills, numDeaths, levelsCompleted,
                      numRestarts, currentLevel, maxLevelAchieved,
                      currNumLives):
     UserFileManagement().addStatistics(username, numKills, numDeaths,
                                        levelsCompleted, numRestarts,
                                        currentLevel, maxLevelAchieved,
                                        currNumLives)
コード例 #3
0
 def addUser(self, username, password):
     if (username != "" and len(username) < 25 and len(username) > 3):
         if (self.verifyUsernameUnique(username)):
             userFileManagement = UserFileManagement().addUser(
                 username, password)
             return True
     return False
コード例 #4
0
 def getKDROf(self, username):
     if (username != ""):
         stats = UserFileManagement().getStatistics()
         user = filter(lambda x: x[0] == username, stats)[0]
         if (int(user[2]) == 0):
             if (int(user[1]) == 0):
                 return 0.0
             return float(1000000 * user[1])
         return round(float(user[1]) / float(user[2]), 2)
     return None
コード例 #5
0
    def getUsersWithKDR(self, condition, value):
        def _sorting(x):
            if (int(x[2]) != 0):
                return round(float(x[1]) / float(x[2]), 2)
            elif (x[1] == 0):
                return float(x[2])
            else:
                # x 1,000,000 to ensure zero deaths come on top
                return float(x[1]) * 1000000.0

        if (self._checkValidCondition(condition)):
            users = UserFileManagement().getStatistics()
            return filter(lambda x: condition(_sorting(x), value), users)
コード例 #6
0
    def getStatsByKDR(self, inverse):
        def _sorting(x):
            if (int(x[2]) != 0):
                return round(float(x[1]) / float(x[2]), 2)
            elif (x[1] == 0):
                return round(float(x[2]), 2)
            else:
                # x 1,000,000 to ensure zero deaths come on top
                return float(x[1]) * 1000000.0

        stats = UserFileManagement().getStatistics()
        sortedStats = sorted(stats, key=lambda x: _sorting(x))
        if (inverse == False):
            return sortedStats[::-1]
        return sortedStats
コード例 #7
0
 def getCurrNumLives(self, username):
     if (username != ""):
         stats = UserFileManagement().getStatistics()
         user = filter(lambda x: x[0] == username, stats)[0]
         return int(user[7])
     return None
コード例 #8
0
 def addNumDeathsFor(self, username, numDeaths):
     UserFileManagement().addStatistics(username, 0, numDeaths, 0, 0, 0, 0,
                                        0)
コード例 #9
0
 def getNumRestartsOf(self, username):
     if (username != ""):
         stats = UserFileManagement().getStatistics()
         user = filter(lambda x: x[0] == username, stats)[0]
         return int(user[4])
     return None
コード例 #10
0
 def getMaxLevelAchievedOf(self, username):
     if (username != ""):
         stats = UserFileManagement().getStatistics()
         user = filter(lambda x: x[0] == username, stats)[0]
         return int(user[6])
     return None
コード例 #11
0
 def removeUser(self, username):
     if (username != ""):
         userFileManagement = UserFileManagement().removeUser(username)
         return True
     return False
コード例 #12
0
 def addLevelsCompletedFor(self, username, levelsCompleted):
     UserFileManagement().addStatistics(username, 0, 0, levelsCompleted, 0,
                                        0, 0, 0)
コード例 #13
0
 def getStatsByMaxLevelAchieved(self, inverse):
     stats = UserFileManagement().getStatistics()
     sortedStats = sorted(stats, key=lambda x: int(x[6]))
     if (inverse == False):
         return sortedStats[::-1]
     return sortedStats
コード例 #14
0
 def updateCurrentLevelFor(self, username, currentLevel):
     user = self.getStatsOf(username)
     UserFileManagement().updateStatistics(username, user[1], user[2],
                                           user[3], user[4], currentLevel,
                                           user[6], user[7])
コード例 #15
0
 def getUsersWithCurrNumLives(self, condition, value):
     if (self._checkValidCondition(condition)):
         users = UserFileManagement().getStatistics()
         return filter(lambda x: condition(int(x[7]), value), users)
コード例 #16
0
 def addMap(self, map):
     if (len(map) == 196):
         UserFileManagement().addMap(map)
コード例 #17
0
 def getStatsByUsername(self, inverse):
     stats = UserFileManagement().getStatistics()
     sortedStats = sorted(stats, key=lambda x: x[0].lower())
     if (inverse == True):
         return sortedStats[::-1]
     return sortedStats
コード例 #18
0
 def updateCurrNumLivesFor(self, username, currNumLives):
     user = self.getStatsOf(username)
     UserFileManagement().updateStatistics(username, user[1], user[2],
                                           user[3], user[4], user[5],
                                           user[6], currNumLives)
コード例 #19
0
 def updateMaxLevelAchievedFor(self, username, maxLevelAchieved):
     user = self.getStatsOf(username)
     UserFileManagement().updateStatistics(username, user[1], user[2],
                                           user[3], user[4], user[5],
                                           maxLevelAchieved, user[7])
コード例 #20
0
 def addNumKillsFor(self, username, numKills):
     UserFileManagement().addStatistics(username, numKills, 0, 0, 0, 0, 0,
                                        0)
コード例 #21
0
 def getStatsByCurrNumLives(self, inverse):
     stats = UserFileManagement().getStatistics()
     sortedStats = sorted(stats, key=lambda x: int(x[7]))
     if (inverse == False):
         return sortedStats[::-1]
     return sortedStats
コード例 #22
0
 def getUsersWithMaxLevelAchieved(self, condition, value):
     if (self._checkValidCondition(condition)):
         users = UserFileManagement().getStatistics()
         return filter(lambda x: condition(int(x[6]), value), users)
コード例 #23
0
 def addNumRestartsFor(self, username, numRestarts):
     UserFileManagement().addStatistics(username, 0, 0, 0, numRestarts, 0,
                                        0, 0)
コード例 #24
0
 def getUsersAlphabetically(self, inverse):
     listOfUser = UserFileManagement().getUsers()
     sortedUsers = sorted(listOfUser, key=lambda x: x[0].lower())
     if (inverse == True):
         return sortedUsers[::-1]
     return sortedUsers
コード例 #25
0
 def getMaps(self):
     return UserFileManagement().getMaps()