예제 #1
0
 def __init__(self, board, size, white_quads = None, black_quads = None, initialize = True):
     '''
     Constructor.
     
     @param size: The board's width.
     @param board: A matrix describing the board.
     '''
     self.size = size
     self.board = board
     self.euler = {}
     
     if white_quads != None:
         self.white_quads = white_quads
     else:
         self.white_quads = {}
     
     if black_quads != None:
         self.black_quads = black_quads
     else:
         self.black_quads = {}             
     
     if initialize:
         for x in range(-1, size):
             for y in range(-1, size):
                 self.setQuadType(x, y, findQuadType(x, y, board, size, WHITE), WHITE)
                 self.setQuadType(x, y, findQuadType(x, y, board, size, BLACK), BLACK)
         
         self.calcEulerNumber()
예제 #2
0
 def testFindQuadType(self):
     self.assertEqual('Q1', findQuadType(0, 0, self.board1, 2, 'W'))
     self.assertEqual('Q2', findQuadType(0, 0, self.board1, 2, 'B'))
     self.assertEqual('Q1', findQuadType(0, 0, self.board2, 2, 'W'))
     self.assertEqual('Q3', findQuadType(0, 0, self.board2, 2, 'B'))
     self.assertEqual('Q0', findQuadType(0, 0, self.board3, 2, 'W'))
     self.assertEqual('Q4', findQuadType(0, 0, self.board3, 2, 'B'))
     self.assertEqual('Q1', findQuadType(-1, -1, self.board3, 2, 'B'))
     self.assertEqual('Q1', findQuadType(1, 1, self.board3, 2, 'B'))
     self.assertEqual('Q2', findQuadType(0, -1, self.board3, 2, 'B'))
     self.assertEqual('Qd', findQuadType(0, 0, self.board4, 2, 'W'))
     self.assertEqual('Qd', findQuadType(0, 0, self.board4, 2, 'B'))
예제 #3
0
 def updateSurroundingCells(self, x, y, player):
     self.setQuadType(x, y, findQuadType(x, y, self.board, self.size, player), player)
     self.setQuadType(x-1, y, findQuadType(x-1, y, self.board, self.size, player), player)
     self.setQuadType(x, y-1, findQuadType(x, y-1, self.board, self.size, player), player)
     self.setQuadType(x-1, y-1, findQuadType(x-1, y-1, self.board, self.size, player), player)
예제 #4
0
 def spin(self, action, state):
     for player in [WHITE, BLACK]:
         for x in range(action.col-1, action.col+2):
             for y in range(action.row-1, action.row+2):
                 self.setQuadType(x, y, findQuadType(x, y, self.board, 
                                                 self.size, player), player)