示例#1
0
 def play_one_step(self):
     N = 5
     piece_type, previous_board, board = readInput(N)
     go = GO(N)
     go.set_board(piece_type, previous_board, board)
     action = self.get_input(go, piece_type)
     writeOutput(action)
示例#2
0
    def get_input(self, go, piece_type):
        '''
        Get one input.

        :param go: Go instance.
        :param piece_type: 1('X') or 2('O').
        :return: (row, column) coordinate of input.
        '''
        possible_placements = []
        for i in range(go.size):
            for j in range(go.size):
                if go.valid_place_check(i, j, piece_type, test_check=True):
                    possible_placements.append((i, j))
        if not possible_placements:
            return "PASS"
        else:
            action = random.choice(possible_placements)
            x, y = action
            writeOutput(action)
            return action
示例#3
0
文件: abq.py 项目: FloopEver/AI
        line = f.read(2)
        f.close()
        win = int(line[0])
        side = int(line[1])
        if win == 0:
            result = 1
        elif win == side:
            result = 2
        else:
            result = 0
        player = QLearner(side=side)
        player.read()
        player.update(result)
        player.save(1)
    else:
        """
        Get current state and piece_type.
        Move (action)
        """
        N = 5
        piece_type, previous_board, board = readInput(N)
        go = GO(N)
        go.set_board(piece_type, previous_board, board)
        curr_state = ''.join(
            [str(board[i][j]) for i in range(N) for j in range(N)])
        player = QLearner(side=piece_type)
        player.read()
        action = player.get_input(go, curr_state)
        writeOutput(action)
        player.save(0)