コード例 #1
0
 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)]
コード例 #2
0
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)
コード例 #3
0
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)
コード例 #4
0
    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)
コード例 #5
0
    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)
コード例 #6
0
    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)
コード例 #7
0
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)
コード例 #8
0
    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)
コード例 #9
0
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))
コード例 #10
0
ファイル: board.py プロジェクト: braddotcoffee/AI-Project-2
 def _init_board(self):
     for i in range(1, 16):
         for j in range(1, 16):
             self.add_empty_piece(Coordinate(i, j))