# textDisplay.py # -------------- # Licensing Information: You are free to use or extend these projects for # educational purposes provided that (1) you do not distribute or publish # solutions, (2) you retain this notice, and (3) you provide clear # attribution to UC Berkeley, including a link to http://ai.berkeley.edu. # # Attribution Information: The Pacman AI projects were developed at UC Berkeley. # The core projects and autograders were primarily created by John DeNero # (denero@cs.berkeley.edu) and Dan Klein (klein@cs.berkeley.edu). # Student side autograding was added by Brad Miller, Nick Hay, and # Pieter Abbeel (pabbeel@cs.berkeley.edu). import time try: import pacman except: pass DRAW_EVERY = 1 SLEEP_TIME = 0 # This can be overwritten by __init__ DISPLAY_MOVES = False QUIET = False # Supresses output class NullGraphics: def initialize(self, state, isBlue = False): pass def update(self, state): pass def checkNullDisplay(self): return True def pause(self): time.sleep(SLEEP_TIME) def draw(self, state): print state def updateDistributions(self, dist): pass def finish(self): pass class PacmanGraphics: def __init__(self, speed=None): if speed != None: global SLEEP_TIME SLEEP_TIME = speed def initialize(self, state, isBlue = False): self.draw(state) self.pause() self.turn = 0 self.agentCounter = 0 def update(self, state): numAgents = len(state.agentStates) self.agentCounter = (self.agentCounter + 1) % numAgents if self.agentCounter == 0: self.turn += 1 if DISPLAY_MOVES: ghosts = [pacman.nearestPoint(state.getGhostPosition(i)) for i in range(1, numAgents)] print "%4d) P: %-8s" % (self.turn, str(pacman.nearestPoint(state.getPacmanPosition()))),'| Score: %-5d' % state.score,'| Ghosts:', ghosts if self.turn % DRAW_EVERY == 0: self.draw(state) self.pause() if state._win or state._lose: self.draw(state) def pause(self): time.sleep(SLEEP_TIME) def draw(self, state): print state def finish(self): pass