def __init__(self, color=Color.WHITE, groupname="golem"): self.pollNextMove = True self.groupname = groupname self.first_move = True self.color = color self.mids = [Coordinate(7,7), Coordinate(7,8), Coordinate(8,7), Coordinate(8,8)]
def test_early(): testBoard = Board.create_init_board() brain = Brain() testBoard.add_piece(Piece(Color.WHITE, Coordinate(1, 1))) testBoard.add_piece(Piece(Color.WHITE, Coordinate(1, 2))) brain.make_move(testBoard)
def get_successor(coord, direction): if direction == Direction.H: return Coordinate.copy_with_new_x(coord, coord.x + 1) elif direction == Direction.V: return Coordinate.copy_with_new_y(coord, coord.y + 1) elif direction == Direction.LD: return Coordinate(coord.x - 1, coord.y + 1) elif direction == Direction.RD: return Coordinate(coord.x + 1, coord.y + 1)
def test_vertical(self): self.testBoard.add_piece(Piece(Color.WHITE, Coordinate(1, 1))) self.testBoard.add_piece(Piece(Color.WHITE, Coordinate(1, 2))) self.testBoard.add_piece(Piece(Color.WHITE, Coordinate(1, 3))) self.testBoard.add_piece(Piece(Color.WHITE, Coordinate(1, 5))) self.testBoard.add_piece(Piece(Color.WHITE, Coordinate(1, 6))) self.testBoard.add_piece(Piece(Color.WHITE, Coordinate(1, 7))) """ ############################# # x # # x # # x # # # # x # # x # # x # ############################# sets(1) = 18 [couont each diag and each horizontal] sets(2) = 0 sets(3) = 2 """ self.assertEqual( self.brain._frontal_lobe.evaluation_function(self.testBoard), 28)
def test_diag(self): self.testBoard.add_piece(Piece(Color.WHITE, Coordinate(1, 1))) self.testBoard.add_piece(Piece(Color.WHITE, Coordinate(2, 2))) self.testBoard.add_piece(Piece(Color.WHITE, Coordinate(3, 3))) self.testBoard.add_piece(Piece(Color.WHITE, Coordinate(2, 4))) self.testBoard.add_piece(Piece(Color.WHITE, Coordinate(1, 5))) self.testBoard.add_piece(Piece(Color.WHITE, Coordinate(4, 2))) """ ############################# # # # # # x # # x # # x # # x x # # x # ############################# sets(1) = 17 [count each diag and each horizontal] * 1 sets(2) = 0 * 3 sets(3) = 1 * 5 sets(4) = 1 * 7 """ self.assertEqual( self.brain._frontal_lobe.evaluation_function(self.testBoard), 29)
def run(self): while(self.pollNextMove): #wait several ms, # then poll for move_file time.sleep(0.5) #//TODO: Make the time delay lower if(os.path.isfile(self.groupname + ".go")): if(os.path.isfile("end_game")): self.pollNextMove = False break enemy_move = Hands.check_move_file() #//TODO: Start all the things if(self.first_move): self.first_move = False if enemy_move: self.color = Color.BLACK self.body = Body(self.color) else: # Executes one at most self.color = Color.WHITE self.body = Body(self.color) self.write_move(self.mids[random.randint(0,3)]) continue # Normal Gameflow enemy_move = enemy_move.split() x = Hands.mapLetterToNumber(enemy_move[1]) y = int(enemy_move[2]) enemy_piece = Piece(Color.opposite(self.color), Coordinate(x,y)) self.body.enemy_made_move(enemy_piece) our_move = self.body.make_move() self.write_move(our_move) time.sleep(3)
def time_test(): testBoard = Board.create_init_board() brain = Brain() testBoard.add_piece(Piece(Color.WHITE, Coordinate(1, 1))) testBoard.add_piece(Piece(Color.WHITE, Coordinate(2, 1))) testBoard.add_piece(Piece(Color.WHITE, Coordinate(3, 1))) testBoard.add_piece(Piece(Color.WHITE, Coordinate(14, 1))) testBoard.add_piece(Piece(Color.WHITE, Coordinate(6, 1))) testBoard.add_piece(Piece(Color.WHITE, Coordinate(7, 1))) testBoard.add_piece(Piece(Color.BLACK, Coordinate(1, 4))) testBoard.add_piece(Piece(Color.BLACK, Coordinate(2, 4))) testBoard.add_piece(Piece(Color.BLACK, Coordinate(3, 4))) testBoard.add_piece(Piece(Color.BLACK, Coordinate(5, 4))) testBoard.add_piece(Piece(Color.BLACK, Coordinate(6, 4))) testBoard.add_piece(Piece(Color.BLACK, Coordinate(7, 4))) """ ############################### # # # # # # # B B B B B B # # # # # # W W W W W # # # ############################### """ brain.make_move(testBoard)
def test_within_time(self): self.testBoard.add_piece(Piece(Color.WHITE, Coordinate(1, 1))) self.testBoard.add_piece(Piece(Color.WHITE, Coordinate(2, 1))) self.testBoard.add_piece(Piece(Color.WHITE, Coordinate(3, 1))) self.testBoard.add_piece(Piece(Color.WHITE, Coordinate(5, 1))) self.testBoard.add_piece(Piece(Color.WHITE, Coordinate(6, 1))) self.testBoard.add_piece(Piece(Color.WHITE, Coordinate(7, 1))) self.testBoard.add_piece(Piece(Color.BLACK, Coordinate(1, 4))) self.testBoard.add_piece(Piece(Color.BLACK, Coordinate(2, 4))) self.testBoard.add_piece(Piece(Color.BLACK, Coordinate(3, 4))) self.testBoard.add_piece(Piece(Color.BLACK, Coordinate(5, 4))) self.testBoard.add_piece(Piece(Color.BLACK, Coordinate(6, 4))) self.testBoard.add_piece(Piece(Color.BLACK, Coordinate(7, 4))) """ ############################## # # # # # # # B B B B B B # # # # # # W W W W W W # ############################## """ self.brain.make_move(self.testBoard)
def time_evaluation(): testBoard = Board() testBoard.add_piece(Piece(Color.WHITE, Coordinate(1, 1))) testBoard.add_piece(Piece(Color.WHITE, Coordinate(2, 1))) testBoard.add_piece(Piece(Color.WHITE, Coordinate(3, 1))) testBoard.add_piece(Piece(Color.WHITE, Coordinate(5, 1))) testBoard.add_piece(Piece(Color.WHITE, Coordinate(6, 1))) testBoard.add_piece(Piece(Color.WHITE, Coordinate(7, 1))) testBoard.add_piece(Piece(Color.WHITE, Coordinate(1, 2))) testBoard.add_piece(Piece(Color.WHITE, Coordinate(1, 3))) testBoard.add_piece(Piece(Color.WHITE, Coordinate(1, 5))) testBoard.add_piece(Piece(Color.WHITE, Coordinate(1, 6))) testBoard.add_piece(Piece(Color.WHITE, Coordinate(1, 7))) testBoard.add_piece(Piece(Color.WHITE, Coordinate(2, 2))) testBoard.add_piece(Piece(Color.WHITE, Coordinate(3, 3))) testBoard.add_piece(Piece(Color.WHITE, Coordinate(2, 4))) testBoard.add_piece(Piece(Color.WHITE, Coordinate(4, 2))) """ BOARD BEING BUILT ########################### # x # # x # # x # # x # # x x # # x x x # # x x x x x x # ########################### """ # print(sets_of_adjacent(1, testBoard.all_friendly())) # print(sets_of_adjacent(2, testBoard.all_friendly())) # print(sets_of_adjacent(3, testBoard.all_friendly())) # print(sets_of_adjacent(4, testBoard.all_friendly())) # print(sets_of_adjacent(5, testBoard.all_friendly())) brain = Brain() print(brain.evaluation_function(testBoard))
def _init_board(self): for i in range(1, 16): for j in range(1, 16): self.add_empty_piece(Coordinate(i, j))