home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / var / lib / python-support / python2.6 / glchess / player.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2009-04-20  |  3.8 KB  |  95 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. __author__ = 'Robert Ancell <bob27@users.sourceforge.net>'
  5. __license__ = 'GNU General Public License Version 2'
  6. __copyright__ = 'Copyright 2005-2006  Robert Ancell'
  7. import game
  8. import ai
  9.  
  10. class MovePlayer(game.ChessPlayer):
  11.     '''This class provides a pseudo-player to watch for piece movements'''
  12.     
  13.     def __init__(self, chessGame):
  14.         """Constructor for a move player.
  15.         
  16.         'chessGame' is the game to make changes to (ChessGame).
  17.         """
  18.         self._MovePlayer__game = chessGame
  19.         game.ChessPlayer.__init__(self, '@move')
  20.  
  21.     
  22.     def onPlayerMoved(self, p, move):
  23.         '''Called by chess.board.ChessPlayer'''
  24.         self._MovePlayer__game.setNeedsSaving(True)
  25.         if p is self._MovePlayer__game.getWhite():
  26.             if self._MovePlayer__game.wT is not None:
  27.                 self._MovePlayer__game.wT.controller.pause()
  28.             
  29.             if self._MovePlayer__game.bT is not None:
  30.                 self._MovePlayer__game.bT.controller.run()
  31.             
  32.         elif self._MovePlayer__game.bT is not None:
  33.             self._MovePlayer__game.bT.controller.pause()
  34.         
  35.         if self._MovePlayer__game.wT is not None:
  36.             self._MovePlayer__game.wT.controller.run()
  37.         
  38.         if self._MovePlayer__game.view.moveNumber != -1:
  39.             p.endMove()
  40.         
  41.         self._MovePlayer__game.view.controller.addMove(move)
  42.  
  43.     
  44.     def onUndoMove(self):
  45.         self._MovePlayer__game.view.controller.undoMove()
  46.  
  47.     
  48.     def onGameEnded(self, game):
  49.         '''Called by chess.board.ChessPlayer'''
  50.         self._MovePlayer__game.setNeedsSaving(True)
  51.         self._MovePlayer__game.view.controller.endGame(game)
  52.  
  53.  
  54.  
  55. class HumanPlayer(game.ChessPlayer):
  56.     '''
  57.     '''
  58.     __game = None
  59.     
  60.     def __init__(self, chessGame, name):
  61.         """Constructor.
  62.         
  63.         'chessGame' is the game this player is in (game.ChessGame).
  64.         'name' is the name of this player (string).
  65.         """
  66.         game.ChessPlayer.__init__(self, name)
  67.         self._HumanPlayer__game = chessGame
  68.  
  69.     
  70.     def readyToMove(self):
  71.         self._HumanPlayer__game.view.controller.setAttention(True)
  72.  
  73.  
  74.  
  75. class AIPlayer(ai.Player):
  76.     '''
  77.     '''
  78.     
  79.     def __init__(self, application, name, profile, level, description):
  80.         '''
  81.         '''
  82.         executable = profile.path
  83.         for arg in profile.arguments[1:]:
  84.             executable += ' ' + arg
  85.         
  86.         self.window = application.ui.controller.addLogWindow(profile.name, executable, description)
  87.         ai.Player.__init__(self, name, profile, level)
  88.  
  89.     
  90.     def logText(self, text, style):
  91.         '''Called by ai.Player'''
  92.         self.window.addText(text, style)
  93.  
  94.  
  95.