コード例 #1
0
    def _FindLastEventWithTimeElseMostRecentEventLessthanTime_ORI(
            self, timeToFind):
        """
          if 'timeToFind' matches event then return pos of last event with time of 'timeToFind'
          else return pos of latest event with time before 'timeToFind'
          if no matches return 0
          
          'timeToFind' is an tuple
              (simple mode)  e.g. (1,1)
              (normal mode)  e.g. (1,6,0)
        """
        pos = 0
        lastoccurenceoftime = -1

        for event in self.mediator.story:
            eventtime = eventStrToList(event)[0]
            eventtime = eval(eventtime)

            if self.turnMgr.TimeToTimePosition(
                    eventtime) <= self.turnMgr.TimeToTimePosition(timeToFind):
                # if eventtime <= timeToFind:
                lastoccurenceoftime = pos
                pos += 1
            else:
                break
                # pos should now be positioned at the insertion point

        if lastoccurenceoftime != -1:
            return lastoccurenceoftime
        maxpos = len(self.mediator.story) - 1
        return min(maxpos, pos)
コード例 #2
0
    def _FindLastEventWithTimeElseMostRecentEventLessthanTime_ORI(self, timeToFind):
        """
          if 'timeToFind' matches event then return pos of last event with time of 'timeToFind'
          else return pos of latest event with time before 'timeToFind'
          if no matches return 0
          
          'timeToFind' is an tuple
              (simple mode)  e.g. (1,1)
              (normal mode)  e.g. (1,6,0)
        """
        pos = 0
        lastoccurenceoftime = -1

        for event in self.mediator.story:
            eventtime = eventStrToList(event)[0]
            eventtime = eval(eventtime)

            if self.turnMgr.TimeToTimePosition(eventtime) <= self.turnMgr.TimeToTimePosition(timeToFind):
                #if eventtime <= timeToFind:
                lastoccurenceoftime = pos
                pos+=1
            else:
                break
                # pos should now be positioned at the insertion point

        if lastoccurenceoftime<>-1:
            return lastoccurenceoftime
        maxpos = len(self.mediator.story)-1
        return min(maxpos, pos)
コード例 #3
0
 def _TimeOfEventAt(eventpos, story, self):
     if eventpos == -1:
         return -1
     event = story[eventpos]
     timestr = eventStrToList(event)[0]
     # print event
     assert "(" in timestr
     assert ")" in timestr
     return eval(timestr)  # convert string tuple to tuple
コード例 #4
0
 def _TimeOfEventAt(eventpos, story, self):
     if eventpos == -1:
         return-1
     event = story[eventpos]
     timestr = eventStrToList(event)[0]
     #print event
     assert '('in timestr
     assert ')'in timestr
     return eval(timestr) # convert string tuple to tuple
コード例 #5
0
 def _FindLastEventWithTimeElseMostRecentEventLessthanTime(self, timeToFind):
     timepostofind = self.turnMgr.TimeToTimePosition(timeToFind)
     hi = len(self.mediator.story)
     lo = 0
     if not hi:
         return 0
     while lo < hi:
         mid = (lo+hi)//2
         event = self.mediator.story[mid]
         eventtime = eval( eventStrToList(event)[0] )
         timeposmid = self.turnMgr.TimeToTimePosition(eventtime)
         if timepostofind < timeposmid:
             hi = mid
         else:
             lo = mid + 1
     return max(0, lo-1)