home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.6)
-
- import re
- COLOUR_BLACK = 'B'
- COLOUR_WHITE = 'W'
- RELATIONSHIP_PLAYING_OPPONENT_MOVE = '-1'
- RELATIONSHIP_PLAYING_MY_MOVE = '1'
- RELATIONSHIP_OBSERVER_EXAMINED = '-2'
- RELATIONSHIP_OBSERVER = '0'
- RELATIONSHIP_EXAMINER = '2'
- movePattern = re.compile('<12> ' + '([prnbqkPRNBQK-]{8}) ' + '([prnbqkPRNBQK-]{8}) ' + '([prnbqkPRNBQK-]{8}) ' + '([prnbqkPRNBQK-]{8}) ' + '([prnbqkPRNBQK-]{8}) ' + '([prnbqkPRNBQK-]{8}) ' + '([prnbqkPRNBQK-]{8}) ' + '([prnbqkPRNBQK-]{8}) ' + '([BW]{1}) ' + '([-]?\\d+) ' + '([01]{1}) ' + '([01]{1}) ' + '([01]{1}) ' + '([01]{1}) ' + '(\\d+) ' + '(\\d+) ' + '(.+) ' + '(.+) ' + '([-]?\\d+) ' + '(\\d+) ' + '(\\d+) ' + '(\\d+) ' + '(\\d+) ' + '(\\d+) ' + '(\\d+) ' + '(\\d+) ' + '(.+) ' + '[(](\\d+)[:](\\d+)[)] ' + '(.+) ' + '([01]{1})' + '([01]{1})' + '([01]{1})')
-
- def _decodeFile(string):
- return string
-
-
- def _decodeColour(string):
- if string == 'B' or string == 'W':
- return string
- raise ValueError()
-
-
- def _decodeInteger(string):
- return int(string)
-
-
- def _decodeUInteger(string):
- i = int(string)
- if i < 0:
- raise ValueError()
- i < 0
- return i
-
-
- def _decodeTime(string):
- return 0
-
-
- def _decodeString(string):
- return string
-
-
- def _decodeBoolean(string):
- if string == '0':
- return False
- if string == '1':
- return True
- raise ValueError()
-
- fields = [
- _decodeFile,
- _decodeFile,
- _decodeFile,
- _decodeFile,
- _decodeFile,
- _decodeFile,
- _decodeFile,
- _decodeFile,
- _decodeColour,
- _decodeInteger,
- _decodeBoolean,
- _decodeBoolean,
- _decodeBoolean,
- _decodeBoolean,
- _decodeUInteger,
- _decodeUInteger,
- _decodeString,
- _decodeString,
- _decodeInteger,
- _decodeUInteger,
- _decodeUInteger,
- _decodeUInteger,
- _decodeUInteger,
- _decodeUInteger,
- _decodeUInteger,
- _decodeUInteger,
- _decodeString,
- _decodeTime,
- _decodeString,
- _decodeBoolean]
-
- class Player:
- '''
- '''
- name = ''
- canCastleShort = False
- canCastleLong = False
- strength = 0
- remaining = 0
-
-
- class Move:
- '''
- '''
- board = None
- relationship = None
- gameNumber = 0
- startTime = 0
- increment = 0
- nReversibleMoves = 0
- white = None
- black = None
- move = ''
- movePretty = ''
- marchFile = -1
- moveTime = 0
- moveNumber = 0
- colourToMove = None
- flip = None
-
- def __init__(self):
- self.white = Player()
- self.black = Player()
-
-
-
- def decode(line):
- '''
- '''
- tokens = line.split()[1:]
- if len(tokens) < len(fields):
- raise ValueError('Too few fields')
- len(tokens) < len(fields)
- out = []
- for i in xrange(len(fields)):
-
- try:
- out.append(fields[i](tokens[i]))
- continue
- except ValueError:
- raise ValueError('Invalid field: %s' % tokens[i])
- continue
-
-
-
- m = Move()
- (file1, file2, file3, file4, file5, file6, file7, file8, moveColour, pushFile, whiteCastleShort, whiteCastleLong, blackCastleShort, blackCastleLong, nIrreversableMoves, m.gameNumber, m.white.name, m.black.name, m.relationship, initialTime, incrementTime, m.white.strength, m.black.strength, m.white.remaining, m.black.remaining, m.moveNumber, m.move, m.moveTime, m.movePretty, orientation) = out
- m.board = (file1, file2, file3, file4, file5, file6, file7, file8)
- return m
-
-